ArrayList к Integer. Приведение типов

104
19 июня 2021, 00:50

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);
    }
Answer 1
tempList.add(value); 

tempList имеет тип ArrayList<Integer>, то есть это ArrayList, который хранит внутри себя Integer. Вы пытаетесь записать в него value - ArrayList<Integer>. Т.е. внутрь ArrayList хотите вставить другой ArrayList, вот и вываливается ошибка. Вам нужно записывать внутрь не ArrayList, а значения из него:

tempList.addAll(value);
READ ALSO
Как найти строку или слова в StringBuilder

Как найти строку или слова в StringBuilder

Как найти слово или строку для того чтобы занести её в HashMap в ключ например:

92
Подключение OpenCV к проекту Java

Подключение OpenCV к проекту Java

При выполнении кода из туториала:

102
Ошибка: java: not a statement

Ошибка: java: not a statement

На выводе получаю ошибку:

110
Интересный случай с конкатенацией

Интересный случай с конкатенацией

Почему "sconcat(s)" в отдельности не работает а вот при присваивании к новой String или сразу в sout - работает? Я знаю что String это Immutable класс, и по идее...

83