Java-da LinkedList


Java Java siyahısıBaxılıb 113

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Java-da LinkedList, mövcud olan xətti bir məlumat quruluşudur java.util paket. Buna bənzəyir Java-da ArrayList və bir element əlavə etmək, bir element çıxarmaq və s. kimi əməliyyatları həyata keçirə bilərik. Bu təlimatda Java LinkedList haqqında məlumat əldə edəcəyik.

Java LinkedList

Java LinkedList, hər cür məlumatı saxlaya bilən ikiqat əlaqəli bir siyahıdır. Bu uzanır AbstractList sinifini həyata keçirir ListDeque interfeyslər. Əvvəlki qovşağa və sonrakı ardıcıl qovşağa bir keçid olduğu üçün ikiqat əlaqəli siyahı adlanır. LinkedList bir kolleksiya ehtiva edir qovşaqlarının və xətti bir məlumat quruluşunu həyata keçirir. Hər birinə zəng edirik element bir qovşaq kimi siyahıda. Biz adını ilk kimi siyahıda element başsonuncu kimi element quyruq.

Java-da LinkedListin xüsusiyyətləri

  • Hər növ element ola bilər
  • Təkrarlanan dəyərlərin saxlanmasına imkan verir.
  • Yerləşdirmə qaydasını saxlayır.
  • Yerləşdirmə zamanı elementlərin dəyişməsi olmadığından massivlərdən daha sürətli olur.

Java-da bir LinkedListin işlənməsi

Müzakirə etdiyimiz kimi, LinkedList ikiqat LinkedList istifadə edir. Bu, hər bir qovşaqda 3 hissə var deməkdir: birinci hissədə əvvəlki qovşağa istinad, ikinci hissədə elementin dəyəri və üçüncü hissədə növbəti qovşağa istinad var. Bunu şəkilli nümayəndəlikdən aydın şəkildə başa düşə bilərsiniz.

Java LinkedList

LinkedListdəki ilk element olacaqdır null əvvəlki qovşaqda istinad və LinkedListdəki son element olacaqdır null növbəti qovşaq istinadında.

Java LinkedList iyerarxiyası

Java LinkedListPin

 

LinkedList-də inşaatçılar

Aşağıda Java LinkedList-də istifadə edə biləcəyimiz 2 qurucu var:

LinkedList Konstruktorutəsvir
LinkedList ()Boş bir LinkList yaradır
LinkedList (Kolleksiya c)Kolleksiyanın bütün elementləri ilə əlaqəli bir siyahı yaradır c.

Java LinkedList Metodları

Aşağıda siyahı Java LinkedList üçün çox istifadə olunan metodlardan.

ÜsultəsvirParametr
Mantı əlavə et (Element e)Göstərilən elementi siyahının sonuna əlavə edir. e - əlavə ediləcək element.
Qaytarma dəyəri - Doğru
void add (int index, Element e)Elementi göstərilən indeksə əlavə edir. İndeksdə artıq bir element varsa, o, sağa keçir indeks - elementin daxil edilməli olduğu indeks
e - daxil edilməsi lazım olan element
Boolean addAll (Collection c)Göstərilən elementlərin siyahısını siyahıya əlavə edir.c - əlavə ediləcək elementlər toplusu
Qaytarma dəyəri - doğrudur
Boolean addAll (int index, Collection c)Göstərilən indeksdə elementlər kolleksiyası əlavə edir. İndeksdə artıq element varsa, sonradan sağa keçirindeks - elementlərin əlavə edilməli olduğu indeks
c - əlavə ediləcək elementlər toplusu
Qaytarma dəyəri - Doğru
void addFirst (e elementi)Bağlı siyahının əvvəlinə bir element əlavə edire - daxil ediləcək element
void addLast (Element e)Siyahının sonunda bir element əlavə edire - daxil ediləcək element
boşluq təmiz ()Siyahıdakı bütün elementləri təmizləyir.
Mantiq tərkibində (Nesne o) varSiyahıda göstərilən elementin olub-olmadığını yoxlayırQaytarma dəyəri - siyahıda element varsa doğrudur
BooleanAll (Collection c) ehtiva edirSiyahıda kolleksiyadakı bütün elementlərin olub-olmadığını yoxlayırQaytarma dəyəri - siyahıda bütün elementlər varsa doğrudur
Obyekt klonu ()LinkedListin dayaz bir nüsxəsini qaytarır
Iterator azalan İterator ()Tərkibindəki elementlər üzərindəki bir iteratoru tərs qaydada qaytarır
Obyekt elementi ()Siyahıda ilk elementi (baş) qaytarır
Mantiq bərabərdir (O ​​obyekt)Siyahıda göstərilən bütün elementləri dəqiq qaydada ehtiva etdiyini müqayisə edirQaytarma dəyəri - obyekt elementləri siyahı ilə uyğun gəlirsə doğrudur
Obyekt getIndex (int indeksi)Elementi göstərilən indeksdə alırindeks - alınması lazım olan elementin göstəricisi
Qaytarma dəyəri - Göstərilən indeksdəki element
Obyekt getFirst ()Siyahıda ilk elementi (baş) qaytarır
Obyekt getLast ()Siyahıdakı son elementi (quyruğu) qaytarır
int indexOf (Obyekt o)Göstərilən elementin ilk meydana çıxma indeksini götürüro - Müəyyən ediləcək element
Qaytarma dəyəri - indeks dəyəri
Boole isEmpty ()Siyahının boş olub olmadığını yoxlayırQaytarma dəyəri - siyahıda dəyər yoxdursa doğrudur
Təkrarlayıcı iterator ()Siyahının yineleyicisini ardıcıllıqla alırQaytarma dəyəri - təkrarlayıcı
int lastIndexOf (Obyekt o)Müəyyən edilmiş obyektin son hadisəsini alıro - Müəyyən ediləcək element
Qaytarma dəyəri - indeks dəyəri
ListIterator listiterator ()Siyahıdakı elementlər üzərində təkrarlayıcı qaytarır
ListIterator listiterator (int index)Göstərilən mövqedən başlayaraq siyahıdakı elementlər üzərində təkrarlayıcı qaytarırindeks - təkrarlayıcıyı qaytarmaq üçün lazım olan başlanğıc mövqeyi.
Mantı təklifi (Nesne e)Elementi quyruq kimi daxil edire - əlavə ediləcək element
Boolean təklifİlk (Nesne e)Elementi siyahının ön hissəsinə daxil edire - əlavə ediləcək element
Boolean təklifLast (Object e)Elementi siyahının sonunda əlavə edire - əlavə ediləcək element
Obyekt nəzərdən keçirmə ()Siyahının ilk elementini alır (baş)Siyahı boş olduqda null qaytarır
Obyekt peekFirst ()Siyahının ilk elementini alır (baş)Siyahı boş olduqda null qaytarır
Obyekt peekLast ()Siyahının son elementini alır (quyruq)Siyahı boş olduqda null qaytarır
Obyekt sorğusu ()Siyahının ilk elementini götürür və silir (baş)Siyahı boş olduqda null qaytarır
Obyekt sorğusu Birincisi ()Siyahının ilk elementini götürür və silir (baş)Siyahı boş olduqda null qaytarır
Obyekt sorğusu Son ()Siyahının son elementini (quyruğunu) alır və çıxarırSiyahı boş olduqda null qaytarır
Nesne pop ()İlk elementi siyahının yığınından alır və ya silir
ləğv etmə (obyekt e)Elementi siyahının ön hissəsinə əlavə edire - əlavə ediləcək element
Obyekt sil ()İlk elementi siyahıdan çıxarır
Obyekt sil (int indeksi)Göstərilən indeksdəki elementi silir və qalan elementi sonradan sola aparırindeks - elementin silinməli olduğu indeks mövqeyi
Qaytarma dəyəri - Silinən element
Mantı sil (Nesne o)Varsa göstərilən obyektin ilk meydana çıxmasını siyahıdan siləro - Sökülməsi lazım olan element
Qaytarma dəyəri - siyahıda element varsa, doğrudur
Boolean kaldırAll (Collection c)Varsa kolleksiyadakı bütün elementlərin ilk meydana çıxmasını siyahıdan çıxarırc - elementlərin toplanması
Qaytarma dəyəri - siyahıda kolleksiya varsa doğrudur
Obyekt removeFirst ()Siyahının ilk elementini silir
Boolean removeFirstOccurence (Object e)Siyahıda göstərilən elementin ilk meydana çıxmasını siləre - çıxarılacaq element
Obyekt çıxarışLast ()Son elementi siyahıdan çıxarır
Boolean removeLastOccurence (Nesne e)Göstərilən elementin son meydana gəlməsini siyahıdan silire - çıxarılacaq element
Boolean tutmaAll (Collection c)Siyahıda kolleksiyada göstərilən bütün elementləri saxlayır. Digər elementlər silinəcəkdirc - saxlanılması lazım olan elementlər toplusu
Qaytarma dəyəri - adlanan metod sayəsində siyahı dəyişsə doğrudur
Obyekt dəsti (int index, Object o)Müəyyən edilmiş indeksdəki elementi ötürülmüş obyekt ilə əvəz ediro - dəyişdiriləcək element
indeks - elementin indeksi
Qaytarma dəyəri - Daha əvvəl göstərilən indeksdə olan elementi qaytarır
int ölçüsü ()Siyahının ölçüsünü götürürQaytarma dəyəri - siyahının ölçüsü
Siyahı alt siyahısı (int fromIndex, int toIndex)Siyahının hissəsini start və endIndex əsas götürürfromIndex - alt siyahının alınması lazım olan vəziyyət (daxil edilir)
toIndex - alt siyahının alınacağı indeks (xaric)
boş sort (Müqayisələndirici c)Siyahıda olan elementləri müqayisə arqumentinə əsasən sıralayırc - siyahı elementlərini müqayisə etmək üçün istifadə olunan kompartor
Obyekt [] toArray ()Bir sıra elementləri müvafiq ardıcıllıqla qaytarırQaytarma dəyəri - Siyahıdakı bütün elementlərin düzgün ardıcıllıqla düzülməsi
String toString ()Elementlər kolleksiyasının bir Sətir təmsilini qaytarırQaytarma dəyəri - Vergül və boşluqla ayrılmış və [] daxilində olan sıra elementlərinin sətri

Java'da yeni bir LinkedList yaradın

Aşağıdakı kimi Java-da yeni bir LinkedList yarada bilərik:

LinkedList<Type> list_variable = new LinkedList<Type>();

Növü - məlumat növü siyahıda saxlamaq istədiyiniz. Məsələn: Simli, Tamsayı və s

siyahı_dəyişən - əlaqəli siyahının dəyişən adı

İndi Java LinkedList-in necə istifadə olunacağına dair müxtəlif nümunələrə baxaq metodika yuxarıda müzakirə etdiyimiz.

Misal: Elementlər yaradın və siyahıya əlavə edin

Aşağıda yeni bir LinkedList yaratmaq üçün bir nümunə verilmişdir adları və siyahıya elementlər əlavə edin. İstifadə edərək müəyyən bir indeksə bir element əlavə edə bilərik əlavə etmək metod və indeks dəyərini ötürmək üçün, istifadə edərək siyahının əvvəlinə bir element əlavə edin Əlavə et Birincisi metodunu istifadə edin və siyahının sonunda bir element əlavə edin sonSon metod. Bundan əlavə, istifadə edərək, LinkList'e elementlər toplusu əlavə edə bilərik hamısını əlavə edin metodu.

import java.util.LinkedList;

public class AddListElements {

  public static void main(String[] args) {
    
    //Create a linked list
    LinkedList<String> names = new LinkedList<String>();
    LinkedList<String> newnames = new LinkedList<String>();
    
    //Add elements to the list
    names.add("Ramesh");
    names.add("Suresh");
    names.add("Ganesh");
    
    System.out.println("List elements: " + names);
    
    //Add element to the specified index
    names.add(1, "Jayesh");
    
    System.out.println("List elements after add at specified index: " + names);
    
    //Add element at the beginning of the list
    names.addFirst("Rupesh");
    
    //Add element at the end of the list
    names.addLast("Mahesh");
    
    System.out.println("List elements after addFirst and addLast: " + names);
    
    //Create a new collection list
    newnames.add("Divya");
    newnames.add("Ramya");
    
    //Add collection to the existing linked list
    names.addAll(newnames);
    
    System.out.println("List elements after adding collection of elements: " + names);
  }

}
List elements: [Ramesh, Suresh, Ganesh]
List elements after add at specified index: [Ramesh, Jayesh, Suresh, Ganesh]
List elements after addFirst and addLast: [Rupesh, Ramesh, Jayesh, Suresh, Ganesh, Mahesh]
List elements after adding collection of elements: [Rupesh, Ramesh, Jayesh, Suresh, Ganesh, Mahesh, Divya, Ramya]

Misal: Elementləri siyahıdan silin

Aşağıda LinkedList-dən elementləri silmək üçün bir nümunə var. Göstərilən indeksdəki bir elementi, ilk elementi, son elementi və siyahıdan elementlər toplusunu silə bilərik.

import java.util.LinkedList;

public class RemoveListElements {

  public static void main(String[] args) {
    LinkedList<Integer> numbers = new LinkedList<Integer>();
    LinkedList<Integer> num = new LinkedList<Integer>();
    numbers.add(54);
    numbers.add(64);
    numbers.add(24);
    numbers.add(14);
    numbers.add(84);
    numbers.add(94);
    numbers.add(44);
    
    System.out.println("List elements: " + numbers);
    
    //Removes the head element
    numbers.remove();
    
    System.out.println("List elements after remove: " + numbers);
    
    //Removes the element at the specified index
    numbers.remove(2);
    
    System.out.println("List elements after removing element at specified index: " + numbers);
    
    //Removes the specified element
    numbers.removeFirst();	
    System.out.println("List elements after removing the first element: " + numbers);
    
    //Removes the last element
    numbers.removeLast();
    System.out.println("List elements after removing the last element: " + numbers);
    
    //Create a collection list
    num.add(12);
    num.add(22);
    
    numbers.addAll(num);
    System.out.println("List elements after adding collection: " + numbers);
    
    //Remove a collection from list
    numbers.removeAll(num);
    System.out.println("List elements after removeAll: " + numbers);

  }

}
List elements: [54, 64, 24, 14, 84, 94, 44]
List elements after remove: [64, 24, 14, 84, 94, 44]
List elements after removing element at specified index: [64, 24, 84, 94, 44]
List elements after removing the first element: [24, 84, 94, 44]
List elements after removing the last element: [24, 84, 94]
List elements after adding collection: [24, 84, 94, 12, 22]
List elements after removeAll: [24, 84, 94]

Nümunə: LinkedListin digər metodları

Aşağıda Java LinkedListdəki digər faydalı metodlara bir nümunə verilmişdir. İstifadə edərək siyahının əvvəlinə bir element əlavə edə bilərik basmaq üsulunu istifadə edərək ilk elementi alın element metod. İstifadə edərək müəyyən bir indeksə əsaslanan elementi əldə edə bilərik almaq metod. İlk elementi silmək və almaq üçün pop metod. İstifadə edərək indeksə əsaslanan müəyyən bir dəyəri əvəz edə bilərik təyin etmək metodunu istifadə edərək siyahının ölçüsünü əldə edin boy metod. Bir siyahının boş olub olmadığını yoxlaya bilərik boşdur metodu.

import java.util.Deque;
import java.util.LinkedList;
public class LinkedListDemo {

  public static void main(String[] args) {
    LinkedList<String> cities = new LinkedList<String>();
    
    cities.add("Chennai");
    cities.add("Bangalore");
    
    //Inserts element at the beginning
    cities.push("Kolkata");
    
    System.out.println(cities);
    
    //Retrieves first element
    System.out.println("Output of element() method: " + cities.element());
    
    System.out.println("Out of get method at specified index 2: " + cities.get(2));
    
    //Retrieves and removes the first element
    System.out.println("Output of pop() method: " + cities.pop());
    System.out.println(cities);
    
    //Check if list is empty
    System.out.println("Is LinkedList empty: " + cities.isEmpty());
    
    //Replaces the element at index 1 with new value
    cities.set(1, "Goa");
    System.out.println("List elements after using set() method: " + cities);
    
    //List size
    System.out.println("Size of the LinkedList: " + cities.size());
  }

}
[Kolkata, Chennai, Bangalore]
Output of element() method: Kolkata
Out of get method at specified index 2: Bangalore
Output of pop() method: Kolkata
[Chennai, Bangalore]
Is LinkedList empty: false
List elements after using set() method: [Chennai, Goa]
Size of the LinkedList: 2

Nümunə: Java-da LinkedListi boşaltın və ya silin

Aşağıda, istifadə edərək LinkedListin təmizlənməsi və ya boşaldılması nümunəsidir clear() metod. Siyahısının boş olub olmadığını yoxlaya bilərik isEmpty() metod. Doğru qayıdırsa, siyahının boş olması deməkdir.

import java.util.LinkedList;

public class ClearLinkedList {

  public static void main(String[] args) {
    LinkedList<String> l = new LinkedList<String>();
    l.add("Java");
    l.add("C");
    l.add("C++");
    
    System.out.println("Contents in the List: " +l);
    
    //Clear the list
    l.clear();
    System.out.println("Is List empty: " + l.isEmpty());
    System.out.println("Contents in the List: " + l);
    
  }

}
Contents in the List: [Java, C, C++]
Is List empty: true
Contents in the List: []

Java-da bir LinkedList vasitəsilə təkrarlamaq üçün müxtəlif yollar

LinkedListdəki elementləri təkrarlamaq üçün müxtəlif yollar var. Siyahıdakı elementlərdən keçmək üçün döngə və hər bir döngə üçün istifadə edə bilərik.

Döngü üçün istifadə olunur

Aşağıdakı nümunədə, istifadə edərək siyahıda olan hər elementi təkrarlaya bilərik for loop. İstifadə edərək dəyəri ala bilərik almaq metodu.

import java.util.LinkedList;

public class LinkedListForLoop {

  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<String>();
    list.add("Apple");
    list.add("Banana");
    list.add("Grapes");
    list.add("Pear");
    list.add("Papaya");
    
    //Using for loop
    System.out.println("Iterate using for loop:");
    for(int i=0;i<list.size();i++)
      System.out.println(list.get(i));

    
  }

}
Iterate using for loop:
Apple
Banana
Grapes
Pear
Papaya

Hər bir döngü üçün istifadə

Aşağıda LinkedList istifadə edərək təkrarlama nümunəsi verilmişdir for-each loop.

import java.util.LinkedList;

public class LinkedListForEach {

  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<String>();
    list.add("Apple");
    list.add("Banana");
    list.add("Grapes");
    list.add("Pear");
    list.add("Papaya");
    
    //Using for each loop
    System.out.println("Iterate using for each loop:");
    for(String fruits : list)
      System.out.println(fruits);

  }

}
Iterate using for each loop:
Apple
Banana
Grapes
Pear
Papaya

While loop istifadə olunur

Biz də istifadə edə bilərik while loop aşağıdakı nümunədəki kimi LinkedListdəki elementlərdən keçmək. İstifadə boy üsulu ilə siyahı ölçüsünü alırıq və almaq üsul, fərdi elementləri ala bilərik.

import java.util.LinkedList;

public class LinkedListWhileLoop {

  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<String>();
    list.add("Apple");
    list.add("Banana");
    list.add("Grapes");
    list.add("Pear");
    list.add("Papaya");
    
    System.out.println("Iterate using while loop:");
    
    int i=0;
    while(i<list.size())
    {
      System.out.println(list.get(i));
      i++;
    }

  }

}
Iterate using while loop:
Apple
Banana
Grapes
Pear
Papaya

İterator və listiteratordan istifadə

Aşağıdakı nümunədə istifadə edirik iteratorListIterator siyahıda fərdi elementlər arasında gezinmek. İstifadə sonrakı yineleyicinin metodu, siyahının sonuna çatana qədər elementləri bir-bir əldə edə bilərik. İstifadə edirik sonrakı siyahıda növbəti elementin olub olmadığını yoxlamaq üçün metod.

import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListIterator {

  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<String>();
    list.add("Apple");
    list.add("Banana");
    list.add("Grapes");
    list.add("Pear");
    list.add("Papaya");
    
    System.out.println("Iterate using iterator:");
    //Using iterator
    Iterator<String> i = list.iterator();
    while(i.hasNext())
      System.out.println(i.next());

    System.out.println("Iterate using listiterator:");
    ListIterator<String> li = list.listIterator();
    while(li.hasNext())
      System.out.println(li.next());
  }

}
Iterate using iterator:
Apple
Banana
Grapes
Pear
Papaya
Iterate using listiterator:
Apple
Banana
Grapes
Pear
Papaya

Deque və Queue olaraq əlaqəli siyahı

Metodlarını istifadə edə bilərik Nə haqqındaQueue interfeys, çünki LinkedList sinfi hər iki interfeysi tətbiq edir. Siyahının əvvəlinə və sonuna elementlər əlavə etmək üçün istifadə edirik Əlavə et BirincisisonSon metodlar. İstifadə edirik Birinci alınsonSon ilk və son elementləri almaq metodları. Birinci və son elementi silmək üçün istifadə edirik çıxarın ilkSonSon metodlar. İstifadə edirik səsvermə ilk elementi siyahıdan almaq və çıxarmaq üçün metod.

import java.util.Deque;
import java.util.LinkedList;

public class DequeLinkedList {

  public static void main(String[] args) {
    Deque<String> lang = new LinkedList<>();
    lang.add("Python");
    lang.add("C");
    lang.add("HTML");
    lang.add("Ruby");
    lang.addFirst("Java");
    lang.addLast("C++");
    
    System.out.println("Elements in the list: " + lang);
    
    System.out.println("First element: " + lang.getFirst());
    System.out.println("Last element: " + lang.getLast());
    
    System.out.println("Remove first element: " + lang.removeFirst());
    System.out.println("Remove last element: " + lang.removeLast());
    
    System.out.println("List elements after removing first and last elements: " + lang);
  
    System.out.println("Head element: " + lang.peek());
    System.out.println("Retrieves the first element: " + lang.peekFirst());
    System.out.println("Retrieves the last element: " + lang.peekLast());
    System.out.println( "Remove and returns the first element: " + lang.poll());
    System.out.println("Remove and returns the first element: " + lang.pollFirst());
    System.out.println("Remove and returns the last element: " + lang.pollLast());
    
    System.out.println("List elements after poll method: " + lang);
    
    lang.offer("C#");
    lang.offerFirst("Java");
    lang.offerLast("C++");
    System.out.println("List elements: " + lang);
    
    
  }

}
Elements in the list: [Java, Python, C, HTML, Ruby, C++]
First element: Java
Last element: C++
Remove first element: Java
Remove last element: C++
List elements after removing first and last elements: [Python, C, HTML, Ruby]
Head element: Python
Retrieves the first element: Python
Retrieves the last element: Ruby
Remove and returns the first element: Python
Remove and returns the first element: C
Remove and returns the last element: Ruby
List elements after poll method: [HTML]
List elements: [Java, HTML, C#, C++]

 

arayış

Crack Sistemi Dizayn Müsahibələri
Translate »
1