23-dars — Javada LinkedList klassi.

23-dars — Javada LinkedList klassi.

23-dars - Javada LinkedList klassi.

  • Javada LinkedList doubly linked listdan foydalanib elementlarni yig’adi. U AbstractList klassidan meros(extends) oladi va List va Deque interface’lardan implement oladi. ArrayListdan farqlaridan ham biri Deque dan implement olishidir;
  • LinkedList’da bir xil elementlar saqlash mumkin;
  • LinkedList’da ma’lumotlar kiritilish ketma-ketligida saqlanadi;
  • LinkedList klass sinxron emas;
  • LinkedList klassda boshqarish jarayonlari tez sodir bo’ladi, chunki LinkedList’da elementlarni ko’chirib o’tkazilmaydi;
  • LinkedList list, stack yoki queue’lardan foydalanishi mumkin.

LinkedList da ham ma’lumotlar bilan ishlash ArrayList bilan deyarli bir xil amalga oshiriladi.

importutil.*;
 
publicclass TestCollection7{
 
    public static void main(String args[]){ 
        LinkedList al=new LinkedList(); 
        add("Zafar"); 
        add("Aziz"); 
        add("Jalol"); 
        add("Zafar"); 
        Iterator itr=al.iterator(); 
        while(itr.hasNext())
        { 
            out.println(itr.next()); 
        } 
    } 
}

ArrayList saqlangan ma’lumotlarni LinkedList ham saqlashi mumkin

LinkedListda’gi ma’lumotlarni ArrayListga qo’shib qo’yishga misol

import java.util.ArrayList; 
import java.util.LinkedList; 
import java.util.List; 
 
public class ConvertExample { 
    public static void main(String[] args) { 
        LinkedList linkedlist = new LinkedList(); 
        linkedlist.add("Zafar"); 
        linkedlist.add("Aziz"); 
        linkedlist.add("Jalol"); 
        linkedlist.add("Fayzullo"); 
        List list = new ArrayList(linkedlist); 
        for (String str : list)
        { 
            System.out.println(str); 
        } 
    } 
}

Ekranda:

Zafar

Aziz

Jalol

Fayzullo

ArraList va LinkedList’lar orasidagi farqlar

ArrayList va LinkedList orasida unchalik farqlar ko’p emas. Ulardan ba’zi bir farqlarni ko’rib chiqsak.

1. Qidirish: ArrayListda qidirish jarayoni LinkedList’ga qaraganda tez amalga oshiriladi. ArrayListda qidiruv davomiyligi O(1) LinkeList’da esa O(n) ga teng.

Tarif: ArrayList da elementlar uchun index lar biriktrilgan ma’lumotlarni saqlash strukturasida massivdan foydalanganligi uchun ArrayListda qidiruv tez amalga oshiriladi. LinkedListda esa elementlar joylashuvi boshqacha u doubly linked listni implement qiladi. Shuning uchun qidirilayotgan elementni hamma elementlar ichidan qidiradi.

2. O’chirish: LinkedList da o’chirishni amalga oshirilishi O(1) ga teng ArrayListda esa o’chirilishni bajarilishi O(n) ga teng.

LinkedList da o’chirish ArrayListga nisbatan tezroq amalga oshadi.

Ta’rif: LinkedList elementlarida ikkita nuqta mavjud ya’ni elementning qo’shnilari o’zidan oldigi va keyingi element o’chirilsa, faqat shu qo’shnilarini joylashuvi o’zgaradi xolos. ArrayListda esa element o’chirilgandan keyin barcha elementlarga index’lar boshqatdan beriladi ya’ni har bir elementni boshqa index ga ko’chrib o’tish jarayoni bajariladi.

3. Ma’lumot yozish: LinkedList da add funksiyasini bajarilishi O(1) teng ArrayListda esa bu holat O(n) ga teng. Yozish jarayoni o’chirish jarayonida bo’ladigan amallar bajariladi.

Qisqacha qilib aytganda ArrayList ma’lumotlarni saqlash va qidirishga LinkedList esa ma’lumotlarni qayta ishlashga yaxshidir.

ArrayList va LinkedList lardan qachon foydalaniladi.

Yuqoridagi ta’riflarda aytib o’tilganidek yozish va o’chirishda LinkedList ArrayListga qaraganda ancha tez amalga oshiriladi. Ma’lumot o’chirib yozishda eng yaxshi tanlov bu LinkedList hisoblanadi.

Qidirish jarayoni ArrayList’da Linkedlistga qaraganda tezroq amalga oshiriladi. Shuning uchun qidirish jarayoni amalga oshirilganda ArrayList eng yaxshi tanlovdir.

Manba:

Umumiy Dasturlash
23-dars — Javada LinkedList klassi.