자바 큐 : 자바 큐에 대해 알아야 할 모든 것



이 기사에서는 Java Queue로 알려진 인기있는 Java 데이터 구조를 사용합니다. 또한 더 나은 이해를 위해 적절한 프로그래밍 예제를 사용합니다.

강력한 프로그래밍 언어이며 프로그래머의 삶을 편하게 해주는 다양한 데이터 구조를 지원합니다. 이 기사에서는 이러한 데이터 구조 인 Java Queue를 살펴 보겠습니다. 다음은이 기사에서 초점을 맞춘 포인터입니다.

그럼 시작하겠습니다.





자바의 대기열

큐는 FIFO (First-In-First-Out) 원칙을 따르는 데이터 구조입니다. 즉, 요소는 목록의 끝에 삽입되고 목록의 처음부터 삭제됩니다. 이 인터페이스는 java.util.package에서 사용할 수 있으며 컬렉션 인터페이스를 확장합니다.

큐는 삽입 및 삭제를 포함한 여러 방법을 지원합니다. java.util.package에서 사용할 수있는 대기열은 다음과 같습니다. 무제한 대기열 , java.util.concurrent 패키지에있는 큐는 알려진 반면 제한된 대기열.



Deques를 제외한 모든 대기열은 끝에 삽입 및 전면 삭제를 지원합니다. Deques는 양쪽 끝에서 요소의 삽입 및 삭제를 지원합니다.

Java Queue에 대한이 기사의 다음 주제로 이동하겠습니다.

자바 대기열 구현

큐 인터페이스를 사용하려면 구체적인 클래스를 인스턴스화해야합니다. 다음은 사용할 수있는 몇 가지 구현입니다.



  • util.LinkedList
  • util.PriorityQueue

이러한 구현은 스레드로부터 안전하지 않기 때문에 PriorityBlockingQueue는 스레드로부터 안전한 구현의 대안으로 작동합니다.

PHP mysql_fetch_array

예:

큐 q1 = new LinkedList ()
대기열 q2 = new PriorityQueue ()

몇 가지 중요한 Java Queue 메서드를 살펴 보겠습니다.

Java 대기열의 메소드

  • 더하다(): add () 메서드는 대기열의 끝 또는 끝 부분에 요소를 삽입하는 데 사용됩니다. 이 메서드는 Collection 인터페이스에서 상속됩니다.
  • 제공(): offer () 메서드는 용량 제한을 위반하지 않고 지정된 요소를 큐에 삽입하므로 add () 메서드보다 선호됩니다.
  • 몰래 엿보다(): peek () 메서드는 큐를 제거하지 않고 큐의 앞쪽을 보는 데 사용됩니다. 큐가 비어 있으면 null 값을 반환합니다.
  • 요소(): 큐가 비어 있으면 메서드는 NoSuchElementException을 throw합니다.
  • 없애다(): remove () 메서드는 대기열의 앞부분을 제거하고 반환합니다. 큐가 비어 있으면 NoSuchElementException이 발생합니다.
  • 투표(): poll () 메서드는 큐의 시작 부분을 제거하고 반환합니다. 큐가 비어 있으면 null 값을 반환합니다.

다음 방법에 대한 개요는 다음과 같습니다.

조작

예외 발생

반환 값

끼워 넣다

추가 (요소)

제공 (요소)

없애다

없애다()

투표()

조사

요소()

몰래 엿보다()

이제 데모를 살펴 보겠습니다.

대기열 방법을 보여주는 프로그램

import java.util. * public class Main {public static void main (String [] args) {// 큐가 인터페이스이기 때문에 인스턴스를 생성 할 수 없으므로 큐 q1 = new LinkedList () // 요소 추가 큐 q1.add ( 'I') q1.add ( 'Love') q1.add ( 'Rock') q1.add ( 'And') q1.add ( 'Roll') System.out.println ( 'Elements in Queue : '+ q1) / * * remove () 메서드를 사용하여 Queue에서 요소를 제거 할 수 있습니다. * 이는 Queue에서 첫 번째 요소를 제거합니다. * / System.out.println ('Removed element : '+ q1.remove ( )) / * * element () 메서드-* Queue의 헤드를 반환합니다. * / System.out.println ( 'Head :'+ q1.element ()) / * * poll () 메서드-큐의 * 헤드를 제거하고 반환합니다. Queue가 비어 있으면 null을 반환합니다. * / System.out.println ( 'poll () :'+ q1.poll ()) / * * peek () 메서드-element () 메서드와 동일하게 작동하지만 *하지만 반환합니다 Queue가 비어 있으면 null * / System.out.println ( 'peek () :'+ q1.peek ()) // 큐의 요소 표시 System.out.println ( 'Elements in Queue :'+ q1)} }

산출:

대기열의 요소 : [I, Love, Rock, And, Roll]

제거 된 요소 : I

머리 : 사랑

poll () : 사랑

peek () : 록

대기열의 요소 : [Rock, And, Roll]. 위의 예에서는 Generic Queue가 사용되었습니다.

이 유형의 대기열에서는 대기열에 삽입되는 객체 유형을 제한 할 수 있습니다. 이 예에서는 문자열 인스턴스 만 대기열에 삽입 할 수 있습니다.

Java 대기열을 통해 반복

Java 큐의 요소는 다음 코드를 사용하여 반복 할 수 있습니다.

큐 q1 = new LinkedList ()

q1.add ( '록')

q1.add ( 'And')

q1.add ( '롤')

// 반복자를 통해 액세스

반복기 반복기 = q1.iterator ()

while (iterator.hasNext () {

문자열 요소 = (String) iterator.next ()

}

// 새로운 for 루프를 통해 액세스

for (객체 객체 : q1) {

문자열 요소 = (문자열) 객체

}

요소가 반복되는 순서는 큐 구현에 따라 다릅니다.

Java Queue가 구현할 수있는 여러 메서드가 있지만 여기서는 가장 중요한 메서드에 대해 설명했습니다.

goto C ++ 사용 방법

따라서 우리는 'Java Queue'에 대한이 기사의 끝까지 왔습니다. 더 자세히 알고 싶다면체크 아웃 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 제공합니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.