Java-da Deque


Nə haqqında JavaBaxılıb 59

Java-da Deque interfeysi

Deque in Java, genişləndirən bir interfeysdir queue interfeys. İki tərəfli növbə deməkdir, yəni hər iki tərəfdən elementləri əlavə edib silə bilərik. İlk növbədə ilk çıxma (FIFO) olan növbə tətbiqetməsini və son çıxma (LIFO) yığım tətbiqini dəstəkləyir. Deque interface java.util-in bir hissəsidir paketi aiddir kolleksiya çərçivə.

Deque Hiyerarşi

Java-da DequePin

Java-da Deque-in xüsusiyyətləri

  • Java'daki Deque həm FIFO, həm də LIFO tətbiq edir
  • Dinamik olaraq yenidən ölçülən bir massivdir
  • Sıfır dəyərləri Deque-də saxlaya bilmərik
  • Varsayılan olaraq mövzu təhlükəsiz deyil.

Java-da Deque

Java-da Deque interfeysini tətbiq edən siniflər

Aşağıda Deque interfeysini tətbiq edən dərslər:

  • Əlaqəli siyahı:
    Deque<Type> d = new LinkedList<Type>();
  • ArrayDeque:
    Deque<Type> d = new ArrayDeque<Type>();
    

     

Java'da Deque üsulları

ÜsultəsvirParametr
Mantı əlavə et (Element e)Göstərilən elementi dekin sonuna əlavə edir. e - əlavə ediləcək element.
Qaytarma dəyəri - Doğru
Boolean addAll (Collection c)Göstərilən elementlərin kolleksiyasını dekoya əlavə edir.c - əlavə ediləcək elementlər toplusu
Qaytarma dəyəri - doğrudur
void addFirst (e elementi)Deque əvvəlinə bir element əlavə edire - daxil ediləcək element
void addLast (Element e)Dekin sonunda bir element əlavə edire - daxil ediləcək element
boşluq təmiz ()Dekadakı bütün elementləri təmizləyir.
Mantiq tərkibində (Nesne o) varDeque-də göstərilən elementin olub-olmadığını yoxlayırQaytarma dəyəri - deque elementi ehtiva edərsə doğrudur
BooleanAll (Collection c) ehtiva edirDeque kolleksiyasındakı bütün elementlərin olub olmadığını yoxlayırQaytarma dəyəri - deque bütün elementləri ehtiva edərsə doğrudur
Iterator azalan İterator ()Tərkibindəki elementlər üzərindəki bir iteratoru tərs qaydada qaytarır
Obyekt elementi ()Dekadakı ilk elementi (baş) qaytarır
Mantiq bərabərdir (O ​​obyekt)Deque göstərilən bütün elementləri tam qaydada ehtiva etdiyini müqayisə edirQaytarma dəyəri - obyekt elementləri deque ilə uyğun gəlsə doğrudur
Obyekt getFirst ()Dekadakı ilk elementi (baş) qaytarır
Obyekt getLast ()Dekadakı son elementi (quyruğu) qaytarır
Boole isEmpty ()Deque'nin boş olub olmadığını yoxlayırQaytarma dəyəri - deque dəyər içermirsə doğrudur
Təkrarlayıcı iterator ()Deque-nin iteratorunu ardıcıllıqla alırQaytarma dəyəri - təkrarlayıcı
Mantı təklifi (Nesne e)Elementi quyruq kimi daxil edire - əlavə ediləcək element
Boolean təklifİlk (Nesne e)Elemanı dekanın ön hissəsinə daxil edire - əlavə ediləcək element
Boolean təklifLast (Object e)Dequ sonuna element əlavə edire - əlavə ediləcək element
Obyekt nəzərdən keçirmə ()Dekin ilk elementini alır (baş)Deque boş olduqda null qaytarır
Obyekt peekFirst ()Dekin ilk elementini alır (baş)Deque boş olduqda null qaytarır
Obyekt peekLast ()Deque (quyruq) son elementini alırDeque boş olduqda null qaytarır
Obyekt sorğusu ()Dekin ilk elementini alır və çıxarır (baş)Deque boş olduqda null qaytarır
Obyekt sorğusu Birincisi ()Dekin ilk elementini alır və çıxarır (baş)Deque boş olduqda null qaytarır
Obyekt sorğusu Son ()Deque (quyruq) son elementini alır və çıxarır.Deque boş olduqda null qaytarır
Nesne pop ()İlk elementi deque yığından alır və ya götürür
ləğv etmə (obyekt e)Elemanı dekanın ön hissəsinə daxil edire - əlavə ediləcək element
Obyekt sil ()İlk elementi dekodan çıxarır
Mantı sil (Nesne o)Göstərilən obyektin mövcud olacağı təqdirdə ilk meydana gəlməsini dekodan çıxarıro - Sökülməsi lazım olan element
Qaytarma dəyəri - deque elementi ehtiva edərsə doğrudur
Boolean kaldırAll (Collection c)Kolleksiyadakı bütün elementlərin ilk meydana gəlməsini varsa varsa dekodan çıxarırc - elementlərin toplanması
Qaytarma dəyəri - deque kolleksiyanı ehtiva edərsə doğrudur
Obyekt removeFirst ()Deque'nin ilk elementini çıxarır
Boolean removeFirstOccurence (Object e)Deque-də göstərilən elementin ilk meydana gəlməsini aradan qaldırıre - çıxarılacaq element
Obyekt çıxarışLast ()Son elementi dekodan çıxarır
Boolean removeLastOccurence (Nesne e)Göstərilən elementin son meydana gəlməsini dekodan çıxarıre - çıxarılacaq element
Boolean tutmaAll (Collection c)Kolleksiyada göstərilən bütün elementləri deque ilə saxlayır. Digər elementlər silinəcəkdirc - saxlanılması lazım olan elementlər toplusu
Qaytarma dəyəri - deyilən üsula görə deque dəyişsə, doğrudur
int ölçüsü ()Deque ölçüsünü alırQaytarma dəyəri - deque ölçüsü
Obyekt [] toArray ()Bir sıra elementləri müvafiq ardıcıllıqla qaytarırQaytarma dəyəri - Dekodakı bütün elementlərin müvafiq 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

Nümunə: Elementləri Deque-ə daxil edin

Java-da elementə deka əlavə etmək üçün bir neçə metod mövcuddur. Aşağıdakı nümunə, bütün metodlardan istifadə edərək elementlərin necə yerləşdiriləcəyini göstərir. Add () və offer () metodları elementləri normal sıraya daxil edir. AddFirst (), offerFirst () və push () metodları, dəyərin birincisinə dəyər əlavə edir. AddLast () və offerLast () metodlarından istifadə edərək dekanın sonuna elementlər əlavə edə bilərik. Elementlər toplusunu əlavə etmək üçün addAll () metodundan istifadə edə bilərik.

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

public class InsertDequeElements {

  public static void main(String[] args) {
    Deque<String> d = new LinkedList<String>();
    d.add("C");
    d.addFirst("C++");
    d.addLast("Java");
    
    System.out.println("Elements in the Deque after add, addFirst and addLast: " + d);
    
    Deque<String> dq = new LinkedList<String>();
    dq.add("JavaScript");
    dq.add("Python");
    
    d.addAll(dq);
    
    System.out.println("Elements in the Deque after addAll: " + d);
    
    d.offer(".Net");
    d.offerFirst("C#");
    d.offerLast("VBScript");
    
    System.out.println("Elements in the Deque after offer, offerFirst and offerLast: " + d);
    
    d.push("HTML");
    
    System.out.println("Elements in the Deque after push: " + d);

  }

}

Misal: Deque-dən elementləri silin

Fərqli əlavə əməliyyatlarına bənzər şəkildə, Java-da deque aşağıdakı nümunədə ətraflı şəkildə göstərilən bir neçə silmə əməliyyatını dəstəkləyir. Kaldır () və anket () metodları elementi dekanın əvvəlindən silir. RemoveFirst (), pollFirst () və pop () metodları ilk elementi silir. Son elementi silmək üçün removeLast () və pollLast () metodlarından istifadə edə bilərik. RemoveAll () metodundan istifadə edərək elementlər toplusunu da silə bilərik. RetainAll () metodu yalnız elementlər toplusunu saxlayır və digərlərini deque-dən silir.

import java.util.ArrayDeque;
import java.util.Deque;

public class DeleteDequeElements {

  public static void main(String[] args) {
    Deque<Integer> d = new ArrayDeque<Integer>();
    d.add(30);
    d.add(20);
    d.add(10);
    d.add(50);
    d.add(40);
    d.add(200);
    d.add(300);
    
    Deque<Integer> dq = new ArrayDeque<Integer>();
    dq.add(70);
    dq.add(60);
    dq.add(80);
    dq.add(90);
    dq.add(100);
    
    d.addAll(dq);
    
    System.out.println("Elements in the Deque: " + d);
    
    d.remove();
    d.remove(50);
    
    System.out.println("Elements after remove: " + d);
    
    d.removeFirst();
    d.removeLast();
    
    System.out.println("Elements after removeFirst and removeLast: " + d);
    
    d.poll();
    d.pollFirst();
    d.pollLast();
    
    System.out.println("Elements after poll, pollFirst and pollLast: " + d);

    d.pop();
    System.out.println("Elements after pop: " + d);
    
    d.retainAll(dq);
    System.out.println("Elements after retainAll: " + d);
    
    d.removeAll(dq);
    System.out.println("Elements after removeAll: " + d);
  }

}
Elements in the Deque: [30, 20, 10, 50, 40, 200, 300, 70, 60, 80, 90, 100]
Elements after remove: [20, 10, 40, 200, 300, 70, 60, 80, 90, 100]
Elements after removeFirst and removeLast: [10, 40, 200, 300, 70, 60, 80, 90]
Elements after poll, pollFirst and pollLast: [200, 300, 70, 60, 80]
Elements after pop: [300, 70, 60, 80]
Elements after retainAll: [70, 60, 80]
Elements after removeAll: []

Nümunə: Deque-dən elementləri alın

Aşağıdakı nümunədə bir elementin olub olmadığını yoxlamaq və Deque'in baş və quyruq elementlərini Java-da necə əldə etmək olar. Dəyər mövcudluğunu yoxlamaq üçün, ehtiva edən () və ehtiva edən (bütün) metodu istifadə edə bilərik. Element (), peek (), peekFirst () və getFirst () metodlarından istifadə edərək baş elementi əldə edə bilərik, quyruq elementini almaq üçün getLast () və peekLast () metodlarından istifadə edə bilərik.

import java.util.ArrayDeque;
import java.util.Deque;

public class RetrieveDequeElements {

  public static void main(String[] args) {
    Deque<Integer> d = new ArrayDeque<Integer>();
    d.add(30);
    d.add(20);
    d.add(10);
    d.add(50);
    d.add(40);
    d.add(60);
    d.add(70);
    
    Deque<Integer> dq = new ArrayDeque<Integer>();
    dq.add(80);
    dq.add(90);
    
    d.addAll(dq);
    
    System.out.println(d);
    System.out.println(d.contains(10));
    System.out.println(d.contains(200));
    System.out.println(d.containsAll(dq));
    
    System.out.println("Output of element: " + d.element());
    System.out.println("Get first element using getFirst: " + d.getFirst());
    System.out.println("Get last element using getLast: " + d.getLast());
    System.out.println("Output of peek: " + d.peek());
    System.out.println("Get first element using peekFirst: " + d.peekFirst());
    System.out.println("Get last element using peekLast: " + d.peekLast());

  }

}
[30, 20, 10, 50, 40, 60, 70, 80, 90]
true
false
true
Output of element: 30
Get first element using getFirst: 30
Get last element using getLast: 90
Output of peek: 30
Get first element using peekFirst: 30
Get last element using peekLast: 90

Misal: Deque'yi silin və boş olub olmadığını yoxlayın

Aşağıdakı misal, bütün elementləri clear () metodundan istifadə edərək sökməyin necə təmizlənəcəyini göstərir. DeEkin boş olduğunu isEmpty () metodundan istifadə edərək də yoxlaya bilərik.

import java.util.ArrayDeque;
import java.util.Deque;

public class ClearDeque {

  public static void main(String[] args) {
    Deque<Integer> d = new ArrayDeque<Integer>();
    d.add(30);
    d.add(20);
    d.add(10);
    d.add(50);
    
    System.out.println("Is Empty: " + d.isEmpty());
    d.clear();
    System.out.println("Is Empty after clear: " + d.isEmpty());

  }

}
Is Empty: false
Is Empty after clear: true

Misal: Deque elementlərini təkrarlayın

Varsayılan olaraq, elementləri eyni ardıcıllıqla qaytaran iterator () metodundan istifadə edərək dekodakı elementləri təkrarlaya bilərik. Dəyərləri daxil edildiyi azalan qaydada almaq üçün azalan İterator () metodundan istifadə edə bilərik.

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Iterator;

public class IterateDeque {

  public static void main(String[] args) {
    Deque<Integer> d = new ArrayDeque<Integer>();
    d.add(30);
    d.add(20);
    d.add(10);
    d.add(50);
    d.add(40);
    
    System.out.println("Iterate using iterator:");
    Iterator<Integer> i = d.iterator();
    while(i.hasNext())
      System.out.println(i.next());
    
    System.out.println("Iterate using descendingIterator:");
    Iterator<Integer> di = d.descendingIterator();
    while(di.hasNext())
      System.out.println(di.next());

  }

}
Iterate using iterator:
30
20
10
50
40
Iterate using descendingIterator:
40
50
10
20
30

Misal: Deque-i Array-a çevirin

Aşağıdakı nümunədə, toArray () metodundan istifadə edərək dequ bir sıra təmsilçiliyinə çeviririk. Bu şəkildə sıra indeksinə əsaslanan dəyərlərə çata bilərik.

import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;

public class ConvertDequeToArray {

  public static void main(String[] args) {
    Deque<String> d = new ArrayDeque<String>();
    d.add("James");
    d.add("John");
    d.add("Xavior");
    d.add("Thomas");
    
    String[] arr = d.toArray(new String[d.size()]);
    System.out.println(Arrays.deepToString(arr));
    
    System.out.println("Value at index 2: "+ arr[2]);

  }

}
[James, John, Xavior, Thomas]
Value at index 2: Xavior

 

arayış

Şərh yaz

Translate »
1