
В качестве значения HashMap может принимать объекты, в том числе и List.
Double[] doubleArr = {5.0, 120.0, 98.0};
List<Double> arrList = new ArrayList<>(Arrays.asList(doubleArr));
List<Double> linkList = new LinkedList<>();
linkList.add(17.0);
linkList.add(100500.0);
linkList.add(6587.0);
Map<String, List<Double>> m = new HashMap<>();
m.put("one", arrList);
m.put("two", linkList);
Set<Map.Entry<String, List<Double>>> set = m.entrySet();
for (Map.Entry<String, List<Double>> entry : set) {
for (Double i : entry.getValue()) {
System.out.println(entry.getKey() + " : " + i/10);
}
}
/*
one : 0.5
one : 12.0
one : 9.8
two : 1.7
two : 10050.0
two : 658.7
*/
Если для List не указать тип хранимых данных, в качестве типа будет назначен Object. Если не планируется выполнять специфические операции с элементами коллекции, тип её объектов можно
не указывать.
Map<String, List> m2 = new HashMap<>(); // запись корректная
m2.put("one", arrList);
m2.put("two", linkList);
Set<Map.Entry<String, List>> set2 = m2.entrySet();
for (Map.Entry<String, List> entry : set2) {
// ошибка компиляции. Невозможно преобразовать Object к Double
//for (Double i : entry.getValue()) {
for (Object i : entry.getValue()) {
// ошибка компиляции. Object нельзя использовать в контексте '/'
// System.out.println(entry.getKey() + " : " + i/10);
System.out.println(entry.getKey() + " : " + (Double)i/10);
System.out.println(i);
}
}