java.util.ArrayList cannot be cast to java.lang.Integer
static Map<Integer, ArrayList<Integer> > hashMap = new HashMap<Integer, ArrayList<Integer>>();
public static void main(String... arg) {
printValues();
}
private static void printValues() {
// Add data with duplicate keys
ArrayList<Integer> f=new ArrayList<Integer>();
f.add(2);f.add(7);
addValues(1, f);
addValues(1, f);
addValues(2, f);
// View data.
Iterator<Integer> it = hashMap.keySet().iterator();
ArrayList<Integer> tempList = null;
while (it.hasNext()) {
Integer key = it.next();
tempList = hashMap.get(key);
if (tempList != null) {
//ошибка в этой строке---->
for (Integer value: tempList) {
System.out.println("Key : "+key+ " , Value : "+value);
}
}
}
}
private static void addValues(Integer key, ArrayList<Integer> value) {
ArrayList tempList = null;
if (hashMap.containsKey(key)) {
tempList = hashMap.get(key);
if(tempList == null)
tempList = new ArrayList();
tempList.add(value);
} else {
tempList = new ArrayList();
tempList.add(value);
}
hashMap.put(key,tempList);
}
tempList.add(value);
tempList
имеет тип ArrayList<Integer>
, то есть это ArrayList
, который хранит внутри себя Integer
. Вы пытаетесь записать в него value
- ArrayList<Integer>
. Т.е. внутрь ArrayList
хотите вставить другой ArrayList
, вот и вываливается ошибка. Вам нужно записывать внутрь не ArrayList
, а значения из него:
tempList.addAll(value);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как найти слово или строку для того чтобы занести её в HashMap в ключ например:
Почему "sconcat(s)" в отдельности не работает а вот при присваивании к новой String или сразу в sout - работает? Я знаю что String это Immutable класс, и по идее...