Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java ArrayDeque

Java ArrayDeque

In deze zelfstudie leren we over de klasse ArrayDeque en zijn methoden aan de hand van voorbeelden. We zullen ook leren om array deque te gebruiken om een ​​stapel te implementeren.

In Java kunnen we de ArrayDeque . gebruiken class om wachtrij- en deque-gegevensstructuren te implementeren met behulp van arrays.


Interfaces geïmplementeerd door ArrayDeque

De ArrayDeque class implementeert deze twee interfaces:

  • Java wachtrij-interface
  • Java Deque-interface


ArrayDeque maken

Om een ​​array deque te maken, moeten we de java.util.ArrayDeque . importeren pakket.

Hier is hoe we een array deque in Java kunnen maken:

ArrayDeque<Type> animal = new ArrayDeque<>();

Hier, Type geeft het type array deque aan. Bijvoorbeeld,

// Creating String type ArrayDeque
ArrayDeque<String> animals = new ArrayDeque<>();

// Creating Integer type ArrayDeque
ArrayDeque<Integer> age = new ArrayDeque<>();

Methoden van ArrayDeque

De ArrayDeque class biedt implementaties voor alle methoden die aanwezig zijn in Queue en Deque interface.


Elementen invoegen in deque

1. Voeg elementen toe met add(), addFirst() en addLast()

  • add() - voegt het opgegeven element toe aan het einde van de array deque
  • addFirst() - voegt het gespecificeerde element in aan het begin van de array deque
  • addLast() - voegt de gespecificeerde in aan het einde van de array deque (gelijk aan add() )

Opmerking: Als de array deque vol is, zijn al deze methoden add() , addFirst() en addLast() gooit IllegalStateException .

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();

        // Using add()
        animals.add("Dog");

        // Using addFirst()
        animals.addFirst("Cat");

        // Using addLast()
        animals.addLast("Horse");
        System.out.println("ArrayDeque: " + animals);
    }
}

Uitvoer

ArrayDeque: [Cat, Dog, Horse]

2. Voeg elementen in met offer(), offerFirst() en offerLast()

  • offer() - voegt het opgegeven element toe aan het einde van de array deque
  • offerFirst() - voegt het gespecificeerde element in aan het begin van de array deque
  • offerLast() - voegt het opgegeven element toe aan het einde van de array deque

Opmerking: offer() , offerFirst() en offerLast() retourneert true als het element succesvol is ingevoegd; als de array deque vol is, retourneren deze methoden false .

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        // Using offer()
        animals.offer("Dog");

        // Using offerFirst()
        animals.offerFirst("Cat");

        // Using offerLast()
        animals.offerLast("Horse");
        System.out.println("ArrayDeque: " + animals);
    }
}

Uitvoer

ArrayDeque: [Cat, Dog, Horse]

Opmerking: Als het array deque vol is

  • de add() methode zal een uitzondering genereren
  • de offer() methode retourneert false

Toegang tot ArrayDeque-elementen

1. Toegang tot elementen met getFirst() en getLast()

  • getFirst() - geeft het eerste element van de array deque terug
  • getLast() - geeft het laatste element van de array deque terug

Opmerking: Als de array deque leeg is, getFirst() en getLast() gooit NoSuchElementException .

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Get the first element
        String firstElement = animals.getFirst();
        System.out.println("First Element: " + firstElement);

        // Get the last element
        String lastElement = animals.getLast();
        System.out.println("Last Element: " + lastElement);
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Horse]
First Element: Dog
Last Element: Horse

2. Toegang tot elementen met de methode peek(), peekFirst() en peekLast()

  • peek() - geeft het eerste element van de array deque terug
  • peekFirst() - geeft het eerste element van de array deque terug (gelijk aan peek() )
  • peekLast() - geeft het laatste element van de array deque terug

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using peek()
        String element = animals.peek();
        System.out.println("Head Element: " + element);

        // Using peekFirst()
        String firstElement = animals.peekFirst();
        System.out.println("First Element: " + firstElement);

        // Using peekLast
        String lastElement = animals.peekLast();
        System.out.println("Last Element: " + lastElement);
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Horse]
Head Element: Dog
First Element: Dog
Last Element: Horse

Opmerking: Als de array deque leeg is, peek() , peekFirst() en getLast() gooit NoSuchElementException .


ArrayDeque-elementen verwijderen

1. Verwijder elementen met de methode remove(), removeFirst(), removeLast()

  • remove() - retourneert en verwijdert een element uit het eerste element van de array deque
  • remove(element) - retourneert en verwijdert het opgegeven element uit de kop van de array deque
  • removeFirst() - retourneert en verwijdert het eerste element uit de array deque (gelijk aan remove() )
  • removeLast() - retourneert en verwijdert het laatste element uit de array deque

Opmerking: Als de array deque leeg is, remove() , removeFirst() en removeLast() methode genereert een uitzondering. Ook remove(element) genereert een uitzondering als het element niet wordt gevonden.

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Cow");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using remove()
        String element = animals.remove();
        System.out.println("Removed Element: " + element);

        System.out.println("New ArrayDeque: " + animals);

        // Using removeFirst()
        String firstElement = animals.removeFirst();
        System.out.println("Removed First Element: " + firstElement);

        // Using removeLast()
        String lastElement = animals.removeLast();
        System.out.println("Removed Last Element: " + lastElement);
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Cow, Horse]
Removed Element: Dog
New ArrayDeque: [Cat, Cow, Horse]
Removed First Element: Cat
Removed Last Element: Horse

2. Verwijder elementen met behulp van de poll(), pollFirst() en pollLast() methode

  • poll() - retourneert en verwijdert het eerste element van de array deque
  • pollFirst() - retourneert en verwijdert het eerste element van de array deque (gelijk aan poll() )
  • pollLast() - retourneert en verwijdert het laatste element van de array deque

Opmerking: Als de array deque leeg is, poll() , pollFirst() en pollLast() retourneert null als het element niet wordt gevonden.

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Cow");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using poll()
        String element = animals.poll();
        System.out.println("Removed Element: " + element);
        System.out.println("New ArrayDeque: " + animals);

        // Using pollFirst()
        String firstElement = animals.pollFirst();
        System.out.println("Removed First Element: " + firstElement);

        // Using pollLast()
        String lastElement = animals.pollLast();
        System.out.println("Removed Last Element: " + lastElement);
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Cow, Horse]
Removed Element: Dog
New ArrayDeque: [Cat, Cow, Horse]
Removed First Element: Cat
Removed Last Element: Horse

3. Element verwijderen:gebruik de methode clear()

Om alle elementen uit de array deque te verwijderen, gebruiken we de clear() methode. Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using clear()
        animals.clear();

        System.out.println("New ArrayDeque: " + animals);
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Horse]
New ArrayDeque: []

De ArrayDeque herhalen

  • iterator() - geeft een iterator terug die kan worden gebruikt om over het array deque te itereren
  • descendingIterator() - geeft een iterator terug die kan worden gebruikt om de array deque in omgekeerde volgorde te herhalen

Om deze methoden te gebruiken, moeten we de java.util.Iterator . importeren pakket. Bijvoorbeeld,

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

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");

        System.out.print("ArrayDeque: ");

        // Using iterator()
        Iterator<String> iterate = animals.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }

        System.out.print("\nArrayDeque in reverse order: ");
        // Using descendingIterator()
        Iterator<String> desIterate = animals.descendingIterator();
        while(desIterate.hasNext()) {
            System.out.print(desIterate.next());
            System.out.print(", ");
        }
    }
}

Uitvoer

ArrayDeque: [Dog, Cat, Horse]
ArrayDeque in reverse order: [Horse, Cat, Dog]

Andere methoden

Methoden Beschrijvingen
element() Retourneert een element van de kop van de array deque.
contains(element) Zoekt in de array deque naar het opgegeven element.
Als het element wordt gevonden, retourneert het true , zo niet, dan retourneert het false .
size() Retourneert de lengte van de array deque.
toArray() Converteert array deque naar array en geeft het terug.
clone() Maakt een kopie van de array deque en geeft deze terug.

ArrayDeque als een stapel

Een LIFO (Last-In-First-Out) . implementeren stacks in Java, wordt het aanbevolen om een ​​deque te gebruiken over de Stack-klasse. De ArrayDeque klasse is waarschijnlijk sneller dan de Stack klasse.

ArrayDeque biedt de volgende methoden die kunnen worden gebruikt voor het implementeren van een stapel.

  • push() - voegt een element toe aan de bovenkant van de stapel
  • peek() - retourneert een element van de bovenkant van de stapel
  • pop() - retourneert en verwijdert een element van de bovenkant van de stapel

Bijvoorbeeld,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> stack = new ArrayDeque<>();

        // Add elements to stack
        stack.push("Dog");
        stack.push("Cat");
        stack.push("Horse");
        System.out.println("Stack: " + stack);

        // Access element from top of stack
        String element = stack.peek();
        System.out.println("Accessed Element: " + element);

        // Remove elements from top of stack
        String remElement = stack.pop();
        System.out.println("Removed element: " + remElement);
    }
}

Uitvoer

Stack: [Horse, Cat, Dog]
Accessed Element: Horse
Removed Element: Horse

ArrayDeque Vs. LinkedList-klasse

Beide ArrayDeque en Java LinkedList implementeert de Deque koppel. Er bestaan ​​echter enkele verschillen tussen hen.

  • LinkedList ondersteunt null elementen, terwijl ArrayDeque niet.
  • Elk knooppunt in een gekoppelde lijst bevat links naar andere knooppunten. Daarom LinkedList vereist meer opslagruimte dan ArrayDeque .
  • Als u de wachtrij of de deque-gegevensstructuur implementeert, een ArrayDeque is waarschijnlijk sneller dan een LinkedList .

Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java if... else-instructie
  4. Java voor elke lus
  5. Java-strings
  6. Java-interface
  7. Java anonieme klasse
  8. Java proberen-met-bronnen
  9. Java-annotaties
  10. Java-beweringen
  11. Java-vector