2017-01-02 4 views
0

Я пытаюсь напечатать некоторые значения с помощью Map.But. Я получаю следующую ошибку.Не удается разрешить метод 'entrySet()' в Map <>

Не удается разрешить метод 'entrySet()'

List<Map<Integer, List<EffectList>>> contactList; 
     contactList = (List<Map<Integer, List<EffectList>>>) new HashMap<Integer,List<EffectList>>(); 

     for (Map.Entry<Integer,List<EffectList>> entry : contactList.entrySet()) 
     { 
      //code here 
     } 

Что я здесь делаю неправильно?

+5

'contactList' является' List', а не 'Map'. Я очень удивлен, что вы не получили «ClassCastException» там, пытаясь применить «HashMap» к переменной типа «Список». – Andreas

+2

Почему вы выбрали 'HashMap' для' List'? – Eran

+0

@Andreas Это не прошло компиляции, поэтому они не дошли так далеко. – Eran

ответ

0
List<Map<Integer, List<EffectList>>> contactList; 
contactList = (List<Map<Integer, List<EffectList>>>) new HashMap<Integer,List<EffectList>>(); 

Таким образом, вы бросили Map к List и List не entrySet() метод. Там нет причин, чтобы бросить Map к List из Map s

Заменить эти строки с:

Map<Integer, List<EffectList>> contactList; 
contactList = new HashMap<Integer,List<EffectList>>(); 
1
List<Map<Integer, List<EffectList>>> contactList; 
contactList = (List<Map<Integer, List<EffectList>>>) new HashMap<Integer,List<EffectList>>(); 

вы делаете неправильно при инициализации, так как из списка не может быть инициализировать с помощью Hash Карта .