Java HashMap
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:
Stringkalitlar vaIntegerqiymatlarStringkalitlar vaStringqiymatlar
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);
}
}
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:
Elementni o‘chirish
Elementni o‘chirish uchun remove() metodidan foydalaning va kalitni ko‘rsating:
Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:
HashMap o‘lchami
Elementlar sonini bilish uchun size() metodidan foydalaning:
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);
}
Misol
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Misol
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
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));
}
}
}
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>();
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<>();
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!
