자바스크립트 우선순위 큐

| | | | | | | |

자바에서 PriorityQueue를 사용하는 방법

우선순위 큐는 프로그래밍에서 가장 높은 값을 가진 데이터 항목이 구조에서 먼저 처리되어야 하는 데이터 구조를 생성하는 데 사용됩니다.

코딩 Java에서 우선순위 큐를 구현하려는 상황이 발생할 수 있습니다. 이것이 Java Queue 인터페이스가 들어오는 곳입니다. 그러나 큐는 인터페이스이기 때문에 코드에서 직접 구현할 수 없습니다. 힙 데이터 구조로 우선순위 큐를 생성하려면 대신 PriorityQueue를 사용해야 합니다.

이 튜토리얼에서는 Java에서 PriorityQueue의 기본 사항을 논의하고 큐를 생성하는 방법을 탐색합니다. 이 튜토리얼은 또한 큐의 내용을 검색하고 조작하는 데 사용할 수 있는 PriorityQueue에서 제공하는 주요 메소드를 탐색합니다.

Java 코드 및 PriorityQueue

스택과 같은 큐가 제공됩니다. 작업이 수행되는 특정 순서가 있는 구조. 대기열의 경우 FIFO(선입 선출)에 대한 작업이 수행됩니다. 이것은 목록의 첫 번째 항목이 항상 가장 먼저 나오는 것을 의미합니다. 대기열은 입력한 항목을 기준으로 정렬됩니다.

당신이 레스토랑에 있고 주문을 했다고 가정합니다. 각 고객이 음식을 주문한 순간에 서빙하는 것이 가장 좋은 방법이기 때문에 제공하는 것이 좋습니다. 따라서 Jack 이후에 음식을 주문했다면 Jack 직후에 음식이 제공되기를 원합니다. 이것은 큐의 예입니다.

이 튜토리얼의 목적을 위해 Java에서 우선순위 큐 라인을 생성하는 데 사용되는 대기 중인 작업 PriorityQueue 인터페이스 큐 개발에 중점을 둘 것입니다.

PriorityQueues는 항목이 우선 순위에 따라 정렬되는 큐 i 유형입니다. 즉, 값이 ‚Äã`Äã5 및 10인 대기열에서 10은 마지막에 추가된 경우에도 항상 대기열의 맨 위에 있습니다.

우선순위 대기열 만들기

Java에서 우선 순위 대기열을 생성하려면 먼저 java.util.PriorityQueue 를 가져와야 합니다. 이 패키지에는 대기열을 만드는 데 사용할 수 있는 PriorityQueue 메서드가 포함되어 있습니다. 다음 코드를 사용하여 PriorityQueue 패키지를 가져올 수 있습니다.

이제 PriorityQueue를 가져왔으므로 패키지를 사용하여 대기하는 대기열을 만들 수 있습니다. PriorityQueue를 만드는 데 사용되는 구문:

FIND 다음을 수행합니다.

  • PriorityQueue 프로그램에 우선 순위 대기열을 생성하려고 합니다.
  • DataType 은 대기열에 저장되는 데이터 유형입니다.
  • queue_name 은 대기열이 대기 중인 변수의 이름입니다. 생성됩니다. 수상
  • 새로운 PriorityQueue(); 선험적 대기열 종료 초기화

이를 저장하는 큐를 생성한다고 가정해 보겠습니다. 레스토랑의 고객 주문 우리는 대기열에 각 고객의 테이블 번호를 저장하기를 원합니다. 다음 코드를 사용하여 이 스택을 생성할 수 있습니다. ..

이 예에서 orders integer values ‚Äã‚Äã<라는 PriorityQueue 인스턴스를 만들었습니다. /code> 를 대기열에 저장하고 FIFO 데이터 구조를 사용하여 항목에 액세스하고 삭제합니다.

PriorityQueue에 요소 추가

자바에서는 대기열의 각 요소가 호출됩니다. 요소.

대기열에 항목을 추가하려면 , add ()를 사용할 수 있습니다. 이 메서드는 하나의 매개변수를 사용합니다. 대기열에 추가하려는 항목의 va lore 입니다. 대기 e의 대기열이 가득 차면 add() 는 예외를 반환합니다.

또한 Offer()를 사용하여 다음을 추가할 수 있습니다. 항목을 대기열에 넣습니다. add()Offer()의 차이점은 대기열이 가득 차면 Offer()가 false를 반환하고 add( ) 는 예외를 발생시킵니다.

22번과 17번 테이블을 스택에 추가하려고 한다고 가정해 보겠습니다. 테이블이 방금 점심을 주문했기 때문입니다. 다음 코드를 사용하여 수행할 수 있습니다.

코드 반환:

예제를 Descended에서 중단합니다. 먼저 나중에 코드에서 사용할 PriorityQueue 클래스를 가져왔습니다. 따라서 이 예제에 대한 코드를 저장하는 AddCustomer라는 클래스를 선언했습니다. 다음은 클래스의 코드가 작동하는 방식입니다.

  1. new PriorityQueue <> ();를 사용하여 commands라는 우선 순위 대기열을 만듭니다. .
  2. add()를 사용하여 테이블 # 22를 스택에 추가합니다.
  3. 다음에 commands:.라는 단어를 출력합니다. 콘솔에 있는 스택의 내용에 따라.
  4. offer()를 사용하여 스택에 테이블 # 17을 추가합니다.
  5. 콘솔에 인쇄합니다. 용어 업데이트된 명령 . 다음에 수정된 스택 내용이 뒤따릅니다.
  6. 22가 스택에서 가장 먼저 나타나므로 요소를 제거할 때 가장 먼저 종료됩니다. 즉, 배열 # 22는 스택의 맨 위에 있습니다. 테이블 # 17은 스택의 두 번째 위치에 저장됩니다. 기억하십시오. 우선 순위 대기 대기열은 FIFO 순서

코드 반환 원래 명령이 포함된 배열, 업데이트된 명령이 포함된 배열 .

Remove item from PriorityQueue

PriorityQueue에서 항목을 제거하는 데 사용할 수 있는 두 가지 방법이 있습니다.

서브 보스가 명령 # 17을 처리하고 스택에서 제거하기를 원한다고 가정합니다. 주문이 처리된 후 요리사는 22번이고 스택에서 제거하려고 합니다.

Ref. 17은 스택의 2번 위치에 있고 주문 22번 i에 있습니다. s는 위치 1에 있습니다. 이러한 항목을 순서대로 제거하려고 합니다. 이 코드를 사용하여 명령을 제거할 수 있습니다.

우리 코드는 다음을 반환합니다.

코드를 일시 중지합니다. 먼저 delete()를 사용하여 스택의 위치 2에 있는 주문을 삭제했습니다. 이 명령 # 17은 삭제되었습니다.

우리 코드는 다음과 같은 메시지를 출력했습니다:..? 주문 번호 17번이 삭제되었습니다 이후에 delete () 메소드의 결과가 나왔습니다. delete ()가 스택에서 # 17을 성공적으로 제거하면 메서드가 true를 반환합니다.

다음으로 poll() 을 사용하여 스택에서 최상위 항목을 제거했습니다. 이 경우에는 명령이 없습니다. 22. poll()에서 주문이 삭제되었습니다. 22 삭제된 항목을 반환했습니다. 항목이 제거된 후 Commander # [주문 번호 제거됨]이 대기열에서 제거되었다는 메시지를 인쇄했습니다. 콘솔에서.

항목 가져오기

peek() 메서드는 대기열 항목(첫 번째 항목 대기열에서 ). 우리의 수 셰프가 새 주문을 수락할 준비가 되었기 때문에 스택의 다음 주문 값을 알고 싶다고 가정해 보겠습니다.

이 코드를 사용하여 다음 주문 옆에 있는 클라이언트의 테이블 번호를 검색할 수 있습니다. 라인:

코드는 다음을 반환합니다.

스택의 첫 번째 요소는 22이므로 peek()를 사용할 때 프로그램은 22 "코드의 마지막 행 값을 반환합니다. , 우리는 다음과 같은 메시지를 출력합니다. 처리할 주문은 테이블 # [스택의 첫 번째 주문 번호]이며, 여기서 스택의 첫 번째 주문 번호는 peek()<에 의해 발견되었습니다. /code>.

대기열은 우선순위에 따라 반복

자주 대기열로 작업할 때 우선순위 대기열의 항목을 반복하려는 경우가 많습니다.

p>

이를 수행하기 위해 java.util.Iterator 패키지의 일부인 iterator()를 사용할 수 있습니다. 우리는 <> iterator() 를 사용하려면 먼저 다음 코드를 사용하여 Iterator 패키지를 가져와야 합니다.

레스토랑 주문 대기열의 모든 항목 목록을 다음 코드를 사용하여 콘솔에 인쇄하고 싶다고 가정해 보겠습니다.

코드 반환:

코드에서 먼저 4개의 값을 대기열에 추가합니다. 그런 다음 iterator()를 사용하여 우선 순위 대기열의 모든 항목을 검사하는 데 사용할 수 있는 반복자를 만듭니다. 다음으로, command 대기열의 각 요소에 대해 반복기의 각 요소를 통과하는 while을 만듭니다. 그리고 다음 값을 큐에 출력합니다. <

h2> 추가 메서드 PriorityQueue

PriorityQueue 클래스와 함께 자주 사용되는 다른 세 가지 메서드가 있습니다. 이들은 다음과 같습니다:

메서드 이름 설명
크기() 대기열의 길이를 반환합니다.
toArray () 큐를 배열로 변환합니다.
contains (elementName) 대기열에서 요소를 검색합니다.

결론

PriorityQueue 클래스는 Java에서 대기하는 대기열 인터페이스를 구현하는 데 사용됩니다. 대기열은 FIFO 데이터 구조를 사용하므로 선입선출이 먼저입니다.

이 자습서에서는 Java의 대기열 및 우선순위 대기열의 기본 사항을 보여주었습니다. 대기열을 만드는 방법과 검색에 사용할 수 있는 주요 메서드도 논의했습니다. 항목 및 대기열 조작 .

이제 전문가처럼 Java PriorityQueue 클래스를 사용하기 시작하는 데 필요한 도구가 있습니다.

>

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method