18. Collections¶
Oldingi boblarda array bilan ishlashni o‘rgandik.
Masalan:
int[] sonlar = {10, 20, 30};
Array foydali, lekin uning bir cheklovi bor:
Array hajmi o‘zgarmaydi.
Masalan:
int[] sonlar = new int[3];
Bu array faqat 3 ta element saqlay oladi.
Java'da ma'lumotlarni yanada qulay saqlash uchun Collections ishlatiladi.
Collection nima?¶
Collection — bir nechta ma'lumotni bir joyda saqlash uchun ishlatiladigan Java klasslari.
Eng ko‘p ishlatiladiganlari:
ArrayList
HashSet
HashMap
Hozircha ArrayListdan boshlaymiz.
ArrayList¶
ArrayList arrayga o‘xshaydi, lekin uning hajmini o‘zgartirish mumkin.
Masalan:
import java.util.ArrayList;
ArrayList<String> ismlar = new ArrayList<>();
Endi unga ism qo‘shamiz:
ismlar.add("Ali");
ismlar.add("Vali");
ismlar.add("Hasan");
ArrayList ichida:
Ali
Vali
Hasan
bo‘ladi.
Elementni olish¶
Elementni olish uchun get() ishlatiladi.
System.out.println(ismlar.get(0));
Natija:
Ali
Indeks 0 dan boshlanadi.
0 → Ali
1 → Vali
2 → Hasan
Element qo‘shish¶
add() yangi element qo‘shadi.
ismlar.add("Husan");
Endi:
Ali
Vali
Hasan
Husan
bo‘ladi.
Elementni o‘chirish¶
remove() elementni o‘chiradi.
ismlar.remove(1);
Bu 1 indeksdagi elementni o‘chiradi.
Natija:
Ali
Hasan
Husan
Elementni o‘zgartirish¶
set() yordamida elementni o‘zgartirish mumkin.
ismlar.set(0, "Akmal");
Natija:
Akmal
Hasan
Husan
ArrayList hajmi¶
ArrayList nechta element borligini size() orqali bilamiz.
System.out.println(ismlar.size());
Masalan, natija:
3
ArrayList bilan loop¶
ArrayList ichidagi barcha elementlarni chiqarish mumkin.
for (String ism : ismlar) {
System.out.println(ism);
}
Natija:
Ali
Vali
Hasan
To‘liq misol¶
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> ismlar = new ArrayList<>();
ismlar.add("Ali");
ismlar.add("Vali");
ismlar.add("Hasan");
for (String ism : ismlar) {
System.out.println(ism);
}
}
}
Natija:
Ali
Vali
Hasan
ArrayList<Integer>¶
ArrayList faqat String uchun emas.
Sonlarni ham saqlash mumkin.
ArrayList<Integer> sonlar = new ArrayList<>();
sonlar.add(10);
sonlar.add(20);
sonlar.add(30);
Keyin:
System.out.println(sonlar.get(1));
Natija:
20
ArrayList va array farqi¶
Array:
int[] sonlar = new int[3];
Array hajmi oldindan belgilanadi.
ArrayList:
ArrayList<Integer> sonlar = new ArrayList<>();
ArrayListga kerak bo‘lganda yangi element qo‘shish mumkin.
Masalan:
sonlar.add(10);
sonlar.add(20);
sonlar.add(30);
sonlar.add(40);
HashSet¶
HashSet ham bir nechta element saqlaydi.
Lekin unda bir xil elementlar takrorlanmaydi.
import java.util.HashSet;
HashSet<String> ismlar = new HashSet<>();
ismlar.add("Ali");
ismlar.add("Vali");
ismlar.add("Ali");
Natijada faqat:
Ali
Vali
bo‘ladi.
Ali ikki marta qo‘shilgan bo‘lsa ham, faqat bir marta saqlanadi.
HashMap¶
HashMap ma'lumotlarni key va value ko‘rinishida saqlaydi.
Masalan:
import java.util.HashMap;
HashMap<String, Integer> yoshlar = new HashMap<>();
Endi:
yoshlar.put("Ali", 20);
yoshlar.put("Vali", 25);
Bu yerda:
Ali → 20
Vali → 25
Ali va Vali — key.
20 va 25 — value.
HashMapdan qiymat olish¶
System.out.println(yoshlar.get("Ali"));
Natija:
20
Hozircha nimani bilish kerak?¶
Collections juda katta mavzu.
Hozircha quyidagilarni eslab qolish kifoya:
ArrayList → tartibli ro‘yxat
HashSet → takrorlanmaydigan elementlar
HashMap → key va value
Amaliy mashqlar¶
1-mashq¶
ArrayList<String> yarating.
Unga 5 ta ism qo‘shing.
Keyin barcha ismlarni loop yordamida chiqaring.
2-mashq¶
ArrayList<Integer> yarating.
Unga 5 ta son qo‘shing.
Keyin sonlarning umumiy sonini size() yordamida chiqaring.
3-mashq¶
HashSet<String> yarating.
Bir xil ismni ikki marta qo‘shib ko‘ring.
Natijani kuzating.
4-mashq¶
HashMap<String, Integer> yarating.
3 ta odamning ismi va yoshini saqlang.
Keyin bitta odamning yoshini get() yordamida chiqaring.
Muhim narsalarni eslab qoling¶
Collection — bir nechta ma'lumotni saqlash uchun ishlatiladi.
ArrayList — o‘zgaruvchan ro‘yxat.
ArrayList<String> ismlar = new ArrayList<>();
Element qo‘shish:
ismlar.add("Ali");
Element olish:
ismlar.get(0);
Element o‘chirish:
ismlar.remove(0);
Hajmini olish:
ismlar.size();
HashSet — takrorlanmaydigan elementlar uchun.
HashMap — key va value juftliklari uchun.