2013-08-24 27 views
5

Próbuję utworzyć listę par klucz-wartość. Oto co mam do tej pory:Tworzenie listy obiektów o wartości klucza

Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name); 

To daje mi następujący błąd:

Type mismatch: cannot convert from String to Map

także, w jaki sposób iterację tych? Dzięki!

Odpowiedz

12

Po wywołaniu put na mapie typu Map <Integer,String>, otrzymasz Zwrot String. Więc kiedy to zrobić:

new HashMap<Integer,String>().put(songID, songList.get(i).name); 

zwróci ona String

i podczas próby przypisać go do mapy

Map<Integer,String> map 

kompilator zgłasza błąd,

Type mismatch: cannot convert from String to Map

Oto podpis metody wprowadzania formularza javadocs:

public V put(K key, 
      V value) 

trzeba rozbić ten złożony problematyczny oświadczenie:

Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name); 

do czegoś podobnego:

Map<Integer,String> map = new HashMap<Integer,String>(); 

map.put(songID, songList.get(i).name); 
+1

dziękuję za rozwiązanie problemu i wyjaśnienie go krok po kroku. Początkowo myliłem się z tymi dwoma krokami, gdy zobaczyłem to na innym pytaniu. –

+0

Możesz także wykorzystać anonimowe klasy wewnętrzne, kiedy zajdzie taka potrzeba. Ale słyszę, że nie wszyscy są z nimi dobrze. – dans3itz

0

odpowiedź na tego wątku: Java HashMap associative multi dimensional array can not create or add elements

ma przykład tego, jak to zrobić.

+1

Szczerze mówiąc, nie jestem pewien, jak odpowiedź na to pytanie. (Nigdy nie przegłosowałem btw) –

+0

Dotyczy to pytania, ponieważ zawiera przykład, jak rozwiązać ten problem. Przykład pokazuje, jak utworzyć mapę HashMap i umieścić w niej wiele par klucz-wartość. –

+1

Ja też nie głosowałem w tej sprawie (tylko przegłosowano), ale ta strona zawierała wiele informacji, dziękuję! Widziałem wiele podobnych stron, ale tęskniłem za tym. Dokonam edycji mojego pierwszego postu z odpowiedzią. –