Java HashMap


ULASHISH

Java HashMap

HashMap elementlarni kalit/qiymat juftliklarida saqlaydi, bunda har bir kalit muayyan qiymatga mos keladi.

U java.util paketiga kiradi va Map interfeysini amalga oshiradi.

Elementlarga indeks orqali murojaat qilish o‘rniga (ArrayList bilan ishlagandagi kabi), unga bog‘langan qiymatni olish uchun kalitdan foydalanasiz.

HashMap turli kombinatsiyalarni saqlashi mumkin, masalan:

  • String kalitlar va Integer qiymatlar
  • String kalitlar va String qiymatlar

HashMap yaratish

String kalitlar va String qiymatlarni saqlaydigan capitalCities nomli HashMap obyektini yarating:

Misol

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

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

Endi kalit/qiymat juftliklarini qo‘shish uchun put(), qiymatni kalit bo‘yicha olish uchun get() va yozuvni o‘chirish uchun remove() kabi metodlardan foydalanishingiz mumkin — bularning barchasida indeks raqamlari o‘rniga kalitlar ishlatiladi.


Elementlar qo‘shish

HashMap obyektiga element qo‘shish uchun put() metodidan foydalaning:

Misol

// 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("India", "New Dehli");
    capitalCities.put("Austria", "Wien");
    capitalCities.put("Norway", "Oslo");
    capitalCities.put("Norway", "Oslo"); // Duplicate
    capitalCities.put("USA", "Washington DC");

    System.out.println(capitalCities);
  }
}

O‘zingiz sinab ko‘ring »

Eslatma: Yuqoridagi misolda bir xil kalit (masalan, "Norway") bir necha marta qo‘shilsa, eng oxirgi qiymat avvalgisining ustiga yoziladi, chunki HashMap ichidagi kalitlar noyob bo‘lishi shart.


Elementga murojaat qilish

HashMap ichidagi qiymatga murojaat qilish uchun get() metodidan foydalaning va uning kalitini ko‘rsating:

Misol

capitalCities.get("England");

O‘zingiz sinab ko‘ring »


Elementni o‘chirish

Elementni o‘chirish uchun remove() metodidan foydalaning va kalitni ko‘rsating:

Misol

capitalCities.remove("England");

O‘zingiz sinab ko‘ring »

Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:

Misol

capitalCities.clear();

O‘zingiz sinab ko‘ring »



HashMap o‘lchami

Elementlar sonini bilish uchun size() metodidan foydalaning:

Misol

capitalCities.size();

O‘zingiz sinab ko‘ring »

Eslatma: O‘lcham faqat noyob kalitlarni hisobga oladi. Agar kalit bir necha marta qo‘shilsa, faqat eng oxirgi qiymat saqlanib qoladi.


HashMap bo‘ylab sikl

HashMap elementlarini for-each sikli yordamida aylanib chiqing.

Eslatma: Faqat kalitlar kerak bo‘lsa, keySet() metodidan, faqat qiymatlar kerak bo‘lsa, values() metodidan foydalaning:

Misol

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

O‘zingiz sinab ko‘ring »

Misol

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

O‘zingiz sinab ko‘ring »

Misol

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

O‘zingiz sinab ko‘ring »


Boshqa tiplar

HashMap ichidagi kalitlar va qiymatlar aslida obyektlardir. Yuqoridagi misollarda biz "String" tipidagi obyektlardan foydalandik. Esda tutingki, Java tilida String obyekt hisoblanadi (primitiv tip emas). int kabi boshqa tiplardan foydalanish uchun unga mos o‘rovchi sinfni ko‘rsatishingiz kerak: Integer. Boshqa primitiv tiplar uchun quyidagilardan foydalaning: boolean uchun Boolean, char uchun Character, double uchun Double va hokazo:

Misol

String kalitlar va Integer qiymatlarni saqlaydigan people nomli HashMap obyektini yarating:

// 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));
    }
  }
}

O‘zingiz sinab ko‘ring »


Tartib muhim bo‘lganda

Keyingi bobda siz TreeMap haqida bilib olasiz — u kalit/qiymat juftliklarini kalit bo‘yicha saralangan tartibda saqlaydi.


var kalit so‘zi

Java 10 dan boshlab tipni ikki marta yozmasdan HashMap o‘zgaruvchisini e’lon qilish uchun var kalit so‘zidan foydalanishingiz mumkin. Kompilyator tipni siz beradigan qiymatdan aniqlaydi.

Bu kodni qisqartiradi, ammo ko‘plab dasturchilar aniqlik uchun baribir to‘liq tipdan foydalanadi. var Java tilida to‘g‘ri sintaksis bo‘lgani uchun uni boshqa kodlarda uchratishingiz mumkin, shuning uchun uning mavjudligini bilib qo‘ygan ma’qul:

Misol

// Without var
HashMap<String, String> capitalCities = new HashMap<String, String>();

// With var
var capitalCities = new HashMap<String, String>();

O‘zingiz sinab ko‘ring »


Map interfeysi

Eslatma: Ba’zan Java kodida Map va HashMap’ni birga ko‘rasiz, masalan:

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

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

O‘zingiz sinab ko‘ring »

Bu shuni anglatadiki, o‘zgaruvchi (capitalCities) Map (interfeys) sifatida e’lon qilingan, lekin u HashMap obyektini (aslida ishlatiladigan Map’ni) saqlaydi. HashMap sinfi Map interfeysini amalga oshirgani (implements) uchun bunday qilish mumkin.

U xuddi shunday ishlaydi, ammo ba’zi dasturchilar bu uslubni afzal ko‘radi, chunki u keyinchalik tipni o‘zgartirish uchun ko‘proq moslashuvchanlik beradi.


HashMap bo‘yicha to‘liq ma’lumotnoma

HashMap metodlarining to‘liq ro‘yxati uchun Java HashMap ma’lumotnomasi sahifasiga o‘ting.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!