Java >> Java tutorial >  >> Tag >> HashMap

Sådan gemmer du HashMap<String, ArrayList> inde i en liste

1. Oversigt

I denne vejledning skal vi diskutere, hvordan man gemmer et HashMap inde i en liste i Java. Først vil vi have en kort forklaring af HashMap og Liste datastrukturer i Java. Derefter skriver vi en simpel kode for at løse problemet.

2. HashMap og Liste i Java

Java giver os forskellige datastrukturer med forskellige egenskaber og karakteristika til at gemme objekter. Blandt disse, HashMap er en samling af nøgleværdi-par, der knytter en unik nøgle til en værdi. Også a Liste indeholder en sekvens af objekter af samme type.

Vi kan sætte enten simple værdier eller komplekse objekter i disse datastrukturer.

3. Gem HashMap> Inde i en liste

Lad os få et simpelt eksempel, hvor vi opretter en Liste af HashMaps. For hver bogkategori er der et HashMap der knytter navnet på en bog til dens forfattere.

Først definerer vi javaB ookAuthorsMap, som knytter navnet på en Java-relateret bog til dens liste over forfattere:

HashMap<String, List<String>> javaBooksAuthorsMap = new HashMap<>();

Vi definerer også phpBooksAuthorsMap at holde navnet og forfatterne af en bog til PHP-kategorien:

HashMap<String, List<String>> phpBooksAuthorsMap = new HashMap<>();

Derefter definerer vi booksAuthorsMapsList at holde HashMap s for forskellige kategorier:

List<HashMap<String, List<String>>> booksAuthorsMapsList = new ArrayList<>();

Nu har vi en liste indeholdende to HashMaps .

For at teste det kan vi lægge nogle bogoplysninger i javaB ookAuthorsMap  og phpBooksAuthorsMap lister. Derefter føjer vi dem til booksAuthorsMapsList. Endelig sørger vi for, at HashMaps er føjet til listen.

Lad os se enhedstesten nedenfor:

@Test
public void givenMaps_whenAddToList_thenListContainsMaps() {
    HashMap<String, List<String>> javaBooksAuthorsMap = new HashMap<>();
    HashMap<String, List<String>> phpBooksAuthorsMap = new HashMap<>();
    javaBooksAuthorsMap.put("Head First Java", Arrays.asList("Kathy Sierra", "Bert Bates"));
    javaBooksAuthorsMap.put("Effective Java", Arrays.asList("Joshua Bloch"));
    javaBooksAuthorsMap.put("OCA Java SE 8",
      Arrays.asList("Kathy Sierra", "Bert Bates", "Elisabeth Robson"));
    phpBooksAuthorsMap.put("The Joy of PHP", Arrays.asList("Alan Forbes"));
    phpBooksAuthorsMap.put("Head First PHP & MySQL",
    Arrays.asList("Lynn Beighley", "Michael Morrison"));

    booksAuthorsMapsList.add(javaBooksAuthorsMap);
    booksAuthorsMapsList.add(phpBooksAuthorsMap);

    assertTrue(booksAuthorsMapsList.get(0).keySet()
      .containsAll(javaBooksAuthorsMap.keySet().stream().collect(Collectors.toList())));
    assertTrue(booksAuthorsMapsList.get(1).keySet()
      .containsAll(phpBooksAuthorsMap.keySet().stream().collect(Collectors.toList())));
}

4. Konklusion

I denne artikel talte vi om at gemme HashMaps i en liste i Java. Derefter skrev vi et simpelt eksempel, hvor vi tilføjede HashMap> til en Liste for to bogkategorier.

Eksemplerne er tilgængelige på GitHub.


No
Java tag