# Kas yra Java HashMap ir kaip jį naudoti

Java kalbos klasė „HashMap“ leidžia išsaugoti duomenis raktų ir verčių poromis. Tai ne tik palengvina sąrašo paiešką ir tvarkymą, bet ir suteikia daug prieigos galimybių. Čia aptarsime svarbiausius metodus.

## Kas yra HashMaps Java kalboje?

Yra įvairių būdų saugoti ir gauti duomenis. Kuris saugojimo būdas yra geriausias, priklauso nuo to, kaip ketinate naudoti duomenis. Daugeliu atvejų Java HashMap klasė yra tikriausiai geriausias sprendimas. Skirtingai nuo kitų metodų, ši klasė saugo duomenis kaip **raktų-verčių poras**. Tai reiškia, kad kiekvienam raktui priskiriama tiksliai viena vertė. Jei norite gauti vertę, galite naudoti atitinkamą raktą, kad gautumėte norimą rezultatą. Raktas ir reikšmė gali būti sudaryti iš visiškai skirtingų duomenų tipų, įskaitant eilutes, skaičius ar kitus objektus.

Java HashMap klasė turi keletą privalumų. Pirmasis iš jų – galimybė atlikti greitą paiešką programavimo kalboje. Raktų-verčių metodas taip pat užtikrina, kad vienam raktui nebūtų priskirta keletas verčių, **taip išvengiant dubliavimosi**. Tačiau galite kelis kartus pridėti tą patį objektą naudodami skirtingus raktus. Šis saugojimo ir paieškos funkcionalumas turi teigiamą poveikį našumui, palyginti su nelanksčiais sąrašais, kurie yra žymiai mažiau lankstūs. Tai taip pat yra vienas iš pagrindinių raktų-verčių saugyklų, kurios naudoja tą patį principą, privalumų. Toliau pateiktuose skyriuose parodysime, kaip kurti ir naudoti Java HashMaps.

## Kaip kurti ir naudoti HashMaps Java kalboje

Norėdami sukurti naują HashMap Java kalboje, pirmiausia turite importuoti klasę. Tam naudokite Java komandą `import`. Kodas atrodo taip:

```java
import java.util.HashMap;
HashMap<String, String> nameOfTheHashMap = new HashMap<String, String> ();
```

Du duomenų tipai, atskirti kableliu (šiuo atveju `String, String`), yra raktas ir vertė.

### Naujo HashMap kūrimo

Norėdami geriau paaiškinti, kaip veikia Java HashMaps, pateikiame paprastą pavyzdį. Mūsų pavyzdyje turime klientų sąrašą, kurį įmonė nori saugoti ir kuriuo nori galėti naudotis bet kuriuo metu. Sąraše yra kiekvieno kliento vardas ir unikalus kliento numeris. Nors kliento numeris (mūsų pavyzdyje raktas) visada yra unikalus, gali būti, kad keli klientai turi tą patį vardą. Tačiau kiekvienas iš šių klientų turi savo unikalų numerį. Šis numeris įrašomas kaip sveikasis skaičius, o vardai – kaip eilutės. Štai kaip tai nustatyti Java HashMap:

```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	}
}
```

### Elementų pridėjimas

Dabar turime Java HashMap, bet jis vis dar tuščias. Norėdami pridėti naujas raktų-verčių poras, naudosime `put()` metodą. Štai kaip jis veikia:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList);
	}
}
```

Naudojame komandą `System.out.println`, kad parodytume klientų sąrašą. Rezultatas turėtų atrodyti taip:

```java
{1077=Jerry Mowry, 15312=Peter Smith, 73329=Maria Grosso}
```

### Elementų paieška

Dabar mes sukūrėme klientų sąrašą, kuriame gali būti daug įrašų. Taip pat norime turėti galimybę atskirai pasiekti kiekvieną kliento įrašą. Tam mes perduodame raktą **get()** metodui. Štai pavyzdys, kaip tai veikia:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.get(1077));
	}
}
```

Turėtų būti rodomas tik vardas „Jerry Mowry“.

### Įrašų ištrynimas

Jei norite atsikratyti įrašo, naudokite `remove()` metodą. Štai pavyzdys, kaip naudoti šį metodą:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	customerList.remove(1077);
	System.out.println(customerList);
	}
}
```

Dabar rezultatas atrodo taip:

```java
{15312=Peter Smith, 73329=Maria Grosso}
```

Kita galimybė – ištrinti visą sąrašą. Tam naudokite `clear()` metodą.

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	customerList.clear();
	System.out.println(customerList);
	}
}
```

Dabar vienintelis rezultatas, kurį gauname, yra šis:

```java
{ }
```

## Kaip nustatyti įrašų skaičių

Nors mūsų Java HashMap yra gana paprasta, šią klasę taip pat galite naudoti didesnių, sudėtingesnių projektų valdymui. Dideliuose projektuose gali prireikti nustatyti tikslaus įrašų skaičių. Juk tai bus visa jūsų klientų bazė. Tam galite naudoti `size()`. Štai kaip:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.size());
	}
}
```

Mūsų pavyzdyje išvedamas skaičius 3.

### Kaip rodyti tik raktus arba vertes

Naudodami for-each ciklą, taip pat galite gauti sąrašą, kuriame yra tik raktų arba verčių. Norėdami gauti raktus, naudokite `keySet()` metodą, o vertes – `values()` metodą. Toliau pateiktame kodo pavyzdyje naudosime `values()`:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	for (String i : customerList.values()) {
		System.out.println(i);
		}
	}
}
```

Rezultatas yra:

```java
Jerry Mowry
Peter Smith
Maria Grosso
```

### Patikrinti, ar HashMap turi tam tikrą vertę ar raktą

Be prieigos prie konkretaus įrašo, taip pat galite patikrinti, ar įrašas jau egzistuoja Java HashMap. Tai galite padaryti naudodami metodą `containsKey()` (raktams) ir metodą `containsValue()` (verčių). Jei elementas yra įtrauktas, išvestis bus „true“. Jei elemento nėra HashMap, išvestis bus „false“. Štai kaip veikia abu metodai:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.containsKey(15312));
	System.out.println(customerList.containsValue("Stuart Miller");
	}
}
```

Kadangi raktas „15312“ yra įtrauktas, bet vertė „Stuart Miller“ nėra, rezultatas atrodo taip.

```java
true
false
```


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-hashmap/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-hashmap/) for AI/LLM consumption.