산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 ArrayDeque

자바 ArrayDeque

이 자습서에서는 예제를 통해 ArrayDeque 클래스와 해당 메서드에 대해 알아봅니다. 또한 배열 deque를 사용하여 스택을 구현하는 방법을 배웁니다.

자바에서는 ArrayDeque를 사용할 수 있습니다. 배열을 사용하여 queue 및 deque 데이터 구조를 구현하는 클래스입니다.

<시간>

ArrayDeque에 의해 구현된 인터페이스

ArrayDeque 클래스는 다음 두 인터페이스를 구현합니다.

<시간>

ArrayDeque 생성

배열 데크를 생성하려면 java.util.ArrayDeque을 가져와야 합니다. 패키지.

Java에서 배열 데크를 만드는 방법은 다음과 같습니다.

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

여기서 유형 배열 데크의 유형을 나타냅니다. 예를 들어,

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

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

ArrayDeque의 메소드

ArrayDeque 클래스는 Queue에 있는 모든 메서드에 대한 구현을 제공합니다. 및 Deque 인터페이스.

<시간>

Deque할 요소 삽입

1. add(), addFirst() 및 addLast()를 사용하여 요소 추가

참고: 배열 deque가 가득 차면 이러한 모든 메서드는 add() , addFirst()addLast() IllegalStateException 발생 .

예를 들어,

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);
    }
}

출력

ArrayDeque: [Cat, Dog, Horse]

2. offer(), offerFirst() 및 offerLast()를 사용하여 요소 삽입

참고: offer() , offerFirst()offerLast() true 반환 요소가 성공적으로 삽입된 경우 배열 데크가 가득 차면 이 메서드는 false을 반환합니다. .

예를 들어,

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);
    }
}

출력

ArrayDeque: [Cat, Dog, Horse]

참고: 어레이 데크가 가득 찬 경우

<시간>

ArrayDeque 요소에 액세스

1. getFirst() 및 getLast()를 사용하여 요소에 액세스

참고: 배열 데크가 비어 있으면 getFirst()getLast() NoSuchElementException 발생 .

예를 들어,

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);
    }
}

출력

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

2. peek(), peekFirst() 및 peekLast() 메서드를 사용하여 요소에 액세스

예를 들어,

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);
    }
}

출력

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

참고: 배열 데크가 비어 있으면 peek() , peekFirst()getLast() NoSuchElementException 발생 .

<시간>

ArrayDeque 요소 제거

1. remove(), removeFirst(), removeLast() 메소드를 사용하여 요소 제거

참고: 배열 데크가 비어 있으면 remove() , removeFirst()removeLast() 메서드에서 예외가 발생합니다. 또한 remove(element) 요소를 찾을 수 없으면 예외가 발생합니다.

예를 들어,

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);
    }
}

출력

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

2. poll(), pollFirst() 및 pollLast() 메소드를 사용하여 요소 제거

참고: 배열 데크가 비어 있으면 poll() , pollFirst()pollLast() null 반환 요소를 찾을 수 없는 경우.

예를 들어,

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);
    }
}

출력

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

3. 요소 제거:clear() 메서드 사용

배열 deque에서 모든 요소를 ​​제거하려면 clear()를 사용합니다. 방법. 예를 들어,

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);
    }
}

출력

ArrayDeque: [Dog, Cat, Horse]
New ArrayDeque: []
<시간>

ArrayDeque 반복

이러한 방법을 사용하려면 java.util.Iterator를 가져와야 합니다. 패키지. 예를 들어,

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(", ");
        }
    }
}

출력

ArrayDeque: [Dog, Cat, Horse]
ArrayDeque in reverse order: [Horse, Cat, Dog]
<시간>

기타 방법

메소드 설명
element() 배열 데크의 헤드에서 요소를 반환합니다.
contains(element) 지정된 요소에 대한 배열 deque를 검색합니다.
요소가 발견되면 true를 반환합니다. , 그렇지 않으면 false를 반환합니다. .
size() 배열 deque의 길이를 반환합니다.
toArray() 배열 deque를 배열로 변환하고 반환합니다.
clone() 배열 deque의 복사본을 만들고 반환합니다.
<시간>

스택으로서의 ArrayDeque

LIFO(후입선출)를 구현하려면 Java에서 스택을 사용하려면 Stack 클래스보다 deque를 사용하는 것이 좋습니다. ArrayDeque 클래스는 Stack보다 빠를 가능성이 높습니다. 수업.

ArrayDeque 스택 구현에 사용할 수 있는 다음과 같은 메서드를 제공합니다.

예를 들어,

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);
    }
}

출력

Stack: [Horse, Cat, Dog]
Accessed Element: Horse
Removed Element: Horse
<시간>

ArrayDeque 대. LinkedList 클래스

ArrayDeque 둘 다 Java LinkedList는 Deque을 구현합니다. 상호 작용. 그러나 그들 사이에는 몇 가지 차이점이 있습니다.


java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터