Darsliklar Java ArrayList va LinkedList

Java Java ArrayList va LinkedList

ArrayList va LinkedListList interfeysining ikki asosiy amalga oshirilishi. Ikkovi ham tartiblangan, takrorga ruxsat beruvchi ro’yxat, ammo ichki tuzilishi va tezligi bilan farq qiladi. To’g’ri birini tanlash dastur samaradorligiga ta’sir qiladi.

ArrayListichki tarzda dinamik massivga asoslangan ro’yxat. LinkedList — har bir element keyingisiga ishora qiladigan bog’langan tugunlar zanjiri.

ArrayList bilan ishlash

ArrayList — eng ko’p ishlatiladigan ro’yxat. Uning asosiy metodlarini ko’ramiz:

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> royxat = new ArrayList<>();
        royxat.add("telefon");
        royxat.add("noutbuk");
        royxat.add(1, "planshet");   // 1-indeksga qo'shadi
        royxat.set(0, "smart soat"); // 0-indeksni o'zgartiradi
        royxat.remove("noutbuk");    // qiymat bo'yicha o'chiradi

        System.out.println(royxat);
    }
}
[smart soat, planshet]

add qo’shadi, set o’zgartiradi, remove o’chiradi. ArrayList indeks bo’yicha murojaatda juda tez.

ArrayList bo’ylab yurish

Ro’yxatni for-each bilan aylanib chiqish eng qulay usul:

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> ballar = new ArrayList<>();
        ballar.add(85);
        ballar.add(92);
        ballar.add(78);

        int yigindi = 0;
        for (int ball : ballar) {
            yigindi += ball;
        }
        System.out.println("Yig'indi: " + yigindi);
    }
}
Yig'indi: 255

ArrayList va LinkedList: qaysi biri qachon?

Ikkovining tezlik farqini jadvalda ko’ramiz:

Amal ArrayList LinkedList
Indeks bo’yicha o’qish tez sekin
Oxiriga qo’shish tez tez
O’rtaga qo’shish/o’chirish sekin tez
Xotira kam ko’proq

Amaliy qoida: ko’p o’qish kerak bo’lsa — ArrayList; ko’p qo’shish/o’chirish (ayniqsa o’rtada) kerak bo’lsa — LinkedList.

LinkedList bilan ishlash

LinkedList bir xil metodlarga ega, ustiga navbat (queue) va stek (stack) kabi ishlash imkonini beradi:

import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> navbat = new LinkedList<>();
        navbat.add("Farrux");
        navbat.addFirst("Master Sherkulov");   // boshiga qo'shadi
        navbat.addLast("Aziz");                // oxiriga qo'shadi

        System.out.println(navbat);
        System.out.println("Birinchi: " + navbat.getFirst());
    }
}
[Master Sherkulov, Farrux, Aziz]
Birinchi: Master Sherkulov

addFirst va addLastLinkedList ning maxsus metodlari. Ular boshi va oxiriga element qo’shishni juda tez bajaradi.

Xulosa

Bu bo’limda ArrayList va LinkedList bilan ishlashni, ularning tezlik farqini va tanlov qoidasini ko’rib chiqdik. ArrayList — o’qish uchun, LinkedList — tez-tez o’zgartirish uchun. Keyingi darsda Map va Set — kalit-qiymat va takrorlanmas to’plamlarga o’tamiz.