Java HashMap


Java HashMap

V ArrayListkapitole jste se dozvěděli, že Arrays ukládá položky jako uspořádanou kolekci a musíte k nim přistupovat pomocí indexového čísla ( inttype). A HashMapvšak položky ukládejte do párů " klíč / hodnota " a můžete k nim přistupovat pomocí indexu jiného typu (např. a String).

Jeden objekt se používá jako klíč (index) k jinému objektu (hodnotě). Může ukládat různé typy: Stringklíče a Integerhodnoty, nebo stejný typ, jako: Stringklíče a Stringhodnoty:

Příklad

Vytvořte HashMapobjekt s názvem capitalCities , který bude ukládat String klíče a String hodnoty :

import java.util.HashMap; // import the HashMap class

HashMap<String, String> capitalCities = new HashMap<String, String>();

Přidat položky

Třída HashMapmá mnoho užitečných metod. Chcete-li do něj například přidat položky, použijte put()metodu:

Příklad

// Import the HashMap class
import java.util.HashMap;

public class Main {
  public static void main(String[] args) {
    // Create a HashMap object called capitalCities
    HashMap<String, String> capitalCities = new HashMap<String, String>();

    // Add keys and values (Country, City)
    capitalCities.put("England", "London");
    capitalCities.put("Germany", "Berlin");
    capitalCities.put("Norway", "Oslo");
    capitalCities.put("USA", "Washington DC");
    System.out.println(capitalCities);
  }
}


Přístup k položce

Chcete-li získat přístup k hodnotě v HashMap, použijte get()metodu a podívejte se na její klíč:

Příklad

capitalCities.get("England");


Odebrat položku

Chcete-li odebrat položku, použijte remove()metodu a podívejte se na klíč:

Příklad

capitalCities.remove("England");

Chcete-li odstranit všechny položky, použijte clear()metodu:

Příklad

capitalCities.clear();



Velikost hashMap

Chcete-li zjistit, kolik položek existuje, použijte size()metodu:

Příklad

capitalCities.size();


Smyčka přes HashMap

Procházejte položky a HashMappomocí smyčky pro každého .

Poznámka: Použijte keySet()metodu, pokud chcete pouze klíče, a použijte values()metodu, pokud chcete pouze hodnoty:

Příklad

// Print keys
for (String i : capitalCities.keySet()) {
  System.out.println(i);
}

Příklad

// Print values
for (String i : capitalCities.values()) {
  System.out.println(i);
}

Příklad

// Print keys and values
for (String i : capitalCities.keySet()) {
  System.out.println("key: " + i + " value: " + capitalCities.get(i));
}


Jiné typy

Klíče a hodnoty v HashMap jsou ve skutečnosti objekty. Ve výše uvedených příkladech jsme použili objekty typu "String". Pamatujte, že řetězec v Javě je objekt (ne primitivní typ). Chcete-li použít jiné typy, jako je int, musíte zadat ekvivalentní třídu obalu : Integer. Pro ostatní primitivní typy použijte: Booleanpro boolean, Characterpro char, Doublepro double atd.:

Příklad

Vytvořte HashMapobjekt s názvem lidé , který bude ukládat String klíče a Integer hodnoty :

// Import the HashMap class
import java.util.HashMap;

public class Main {
  public static void main(String[] args) {

    // Create a HashMap object called people
    HashMap<String, Integer> people = new HashMap<String, Integer>();


    // Add keys and values (Name, Age)
    people.put("John", 32);
    people.put("Steve", 30);
    people.put("Angie", 33);

    for (String i : people.keySet()) {
      System.out.println("key: " + i + " value: " + people.get(i));
    }
  }
}