Java LinkedList
Java LinkedList
Oldingi bobda ArrayList sinfi bilan tanishdingiz. LinkedList sinfi ArrayList bilan deyarli bir xil:
Misol
// Import the LinkedList class
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
ArrayList va LinkedList
LinkedList sinfi xuddi ArrayList kabi bir xil tipdagi ko‘plab obyektlarni o‘z ichiga olishi mumkin bo‘lgan kolleksiyadir.
LinkedList sinfida ArrayList’dagi kabi metodlar bor, chunki ikkalasi ham List interfeysiga amal qiladi. Bu LinkedList’dagi elementlarni ham xuddi ArrayList’dagidek qo‘shish, o‘zgartirish, o‘chirish yoki tozalash mumkinligini anglatadi.
Biroq ArrayList sinfi va LinkedList sinfidan bir xil tarzda foydalanish mumkin bo‘lsa-da, ular juda boshqacha tuzilgan.
ArrayList qanday ishlaydi
ArrayList sinfi ichida oddiy massiv bor. Element qo‘shilganda u massivga joylashtiriladi. Agar massiv yetarlicha katta bo‘lmasa, eskisining o‘rniga yangi, kattaroq massiv yaratiladi va eskisi o‘chiriladi.
LinkedList qanday ishlaydi
LinkedList o‘z elementlarini "konteynerlar"da saqlaydi. Ro‘yxatda birinchi konteynerga havola bo‘ladi, har bir konteynerda esa ro‘yxatdagi keyingi konteynerga havola bo‘ladi. Ro‘yxatga element qo‘shish uchun element yangi konteynerga joylashtiriladi va bu konteyner ro‘yxatdagi boshqa konteynerlardan biriga bog‘lanadi.
Qachon foydalanish kerak
Ma’lumotlarni saqlash va ularga murojaat qilish uchun ArrayList’dan, ma’lumotlarni o‘zgartirish (manipulyatsiya qilish) uchun esa LinkedList’dan foydalaning.
LinkedList metodlari
Ko‘p hollarda ArrayList samaraliroq, chunki ro‘yxatdagi ixtiyoriy elementlarga murojaat qilish ko‘p uchraydi, ammo LinkedList ba’zi amallarni samaraliroq bajarish uchun bir nechta metodlarni taqdim etadi:
| Metod | Tavsif | Sinab ko‘ring |
|---|---|---|
addFirst() |
Ro‘yxat boshiga element qo‘shadi | Sinab ko‘ring » |
addLast() |
Ro‘yxat oxiriga element qo‘shadi | Sinab ko‘ring » |
removeFirst() |
Ro‘yxat boshidagi elementni o‘chiradi | Sinab ko‘ring » |
removeLast() |
Ro‘yxat oxiridagi elementni o‘chiradi | Sinab ko‘ring » |
getFirst() |
Ro‘yxat boshidagi elementni oladi | Sinab ko‘ring » |
getLast() |
Ro‘yxat oxiridagi elementni oladi | Sinab ko‘ring » |
var kalit so‘zi
Java 10 dan boshlab tipni ikki marta yozmasdan LinkedList 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
LinkedList<String> cars = new LinkedList<String>();
// With var
var cars = new LinkedList<String>();
List interfeysi
Eslatma: Ba’zan Java kodida List va LinkedList’ni birga ko‘rasiz, masalan:
import java.util.List;
import java.util.LinkedList;
List<String> cars = new LinkedList<>();
Bu o‘zgaruvchi (cars) List (interfeys) sifatida e’lon qilingan, ammo u LinkedList obyektini (haqiqiy ro‘yxatni) saqlashini anglatadi. LinkedList sinfi List interfeysini amalga oshirgani uchun bu 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.
LinkedList bo‘yicha to‘liq ma’lumotnoma
LinkedList metodlari bo‘yicha to‘liq ma’lumotnoma uchun Java LinkedList ma’lumotnomasiga o‘ting.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
