Lista asocjacyjna lub kolejny klucz HashMap

0

Szanowni Forumowicze,
Proszę Was o poradę. W PHP jest taka fajna pętla foreach(), pozwala ona np. odczytać kolejno wszystkie elementy tablicy asocjacyjnej bez używania indeksów.

W JAVA chciałem stworzyć Listę asocjacyjną, ale takiej nie ma typowej. Jest za to HashMap<K(ey),V(alue)>.
Dokładniej stworzyłem takie coś:

HashMap<String/*(*)*/, HashMap<String, String>> asocList = new HashMap<String, HashMap<String, String>>();

Mam jednak problem z odczytaniem kolejno wszystkich elementów bez znajomości nazwy klucza w (*). Macie jakiś pomysł?

1

Map.entrySet()

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;


public class Main {
    
    void run() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("asia", "wojtek");
        map.put("kasia", "jarek");
        for (Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " lubi " + entry.getValue());
        }
    }

    public static void main(String[] args) {
        new Main().run();
    }
}
1

Java też przecież ma foreach?

HashMap<String, HashMap<String, String>> asocList = new HashMap<String, HashMap<String, String>>();
for (Entry<String,HashMap<String, String>> asoc : asocList.entrySet()) {
   //asoc.getKey()
  // asoc.getValue()
}
1

A jak klucze ci nie są potrzebne:

for (Map<String, String> value : asocList.values()) {

}

BTW, interfejsem bazowym dla map w kolekcjach JDK jest Map:

Map<String, Map<String, String>> asocList = new HashMap<String, Map<String, String>>();
0

Jesteście wielcy. Dziękuję:-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1