2017-02-23 30 views
2
LinkedHashMap<Integer,LinkedList> myMap = new LinkedHashMap<Integer,LinkedList>(); 

for(Map.Entry<Integer,LinkedList> entry : myMap.entrySet()){ 

    /*Does Not Work- Incompatible Object Type */    
    for(Integer temp : entry.getValue()){ 
     arr[i] = temp; 
     i++; 
    } 

    /* Works Fine */ 
    LinkedList<Integer> templist = entry.getValue(); 
    for(Integer temp : templist){ 
     arr[i] = temp; 
     i++; 
    } 
} 

ответ

0

Значения вашего LinkedHashMap типа сырца - LinkedList. Измените его на общий тип - LinkedList<Integer>.

LinkedHashMap<Integer,LinkedList<Integer>> myMap = new LinkedHashMap<>(); 
for(Map.Entry<Integer,LinkedList<Integer>> entry : myMap.entrySet()) {    
    for(Integer temp : entry.getValue()) { 
     arr[i] = temp; 
     i++; 
    } 
} 

Таким образом, компилятор знает, что entry.getValue() является LinkedList<Integer>, так что итерация LinkedList должен вернуть Integer с и не любые Object с.

+0

Спасибо за это! – user3035262

Смежные вопросы