2017-02-23 8 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がどのObjectInteger sを返しますし、してはならないことを繰り返し処理、LinkedList<Integer>であることを知っているこの方法です。

+0

ありがとうございます! – user3035262