Lista asocjacyjna lub kolejny klucz HashMap

Odpowiedz Nowy wątek
2011-08-24 15:47
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ł?


"Ten, de profundis, z ciemnego kurhanu
Na trąbę powstanie. " Juliusz Słowacki

"Polacy! Gdyby Spartanie odżyli i zobaczyli Wasz heroizm i bohaterstwo, waleczny i dzielny ten naród schyliłby przed Wami czoło. Polska nie może być zwyciężona." - J.Bryan
edytowany 1x, ostatnio: arrowman, 2011-08-24 15:47

Pozostało 580 znaków

2011-08-24 15:51
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();
    }
}

"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2011-08-24 15:54
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()
}

Pozostało 580 znaków

2011-08-24 17:55
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>>();
edytowany 4x, ostatnio: iooi, 2011-08-24 18:00

Pozostało 580 znaków

2011-08-24 21:00
0

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


"Ten, de profundis, z ciemnego kurhanu
Na trąbę powstanie. " Juliusz Słowacki

"Polacy! Gdyby Spartanie odżyli i zobaczyli Wasz heroizm i bohaterstwo, waleczny i dzielny ten naród schyliłby przed Wami czoło. Polska nie może być zwyciężona." - J.Bryan
edytowany 1x, ostatnio: arrowman, 2011-08-24 21:00

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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