자바 큐 예제

offer 메서드는 가능하면 요소를 삽입하고 그렇지 않으면 false를 반환합니다. 이는 선택되지 않은 예외를 throw하여 요소를 추가하지 못할 수 있는 Collection.add 메서드와 다릅니다. 오퍼 방법은 고정 용량(또는 «경계가 지정된») 큐와 같이 예외적인 발생이 아닌 정상인 경우 사용하도록 설계되었습니다. 큐는 일반적으로 FIFO(선입선) 방식으로 요소를 정렬할 수 있지만 반드시 그런 것은 아닙니다. 예외 중에는 제공된 비교기또는 요소의 자연 순서에 따라 요소를 정렬하는 우선 순위 큐와 요소 LIFO(마지막 선착순)를 정렬하는 LIFO 큐(또는 스택)가 있습니다. 순서가 무엇이든 간에 큐의 헤드는 remove() 또는 poll()을 호출하여 제거되는 요소입니다. FIFO 큐에서 모든 새 요소가 큐의 꼬리에 삽입됩니다. 다른 종류의 큐는 다른 배치 규칙을 사용할 수 있습니다. 모든 큐 구현은 순서 지정 속성을 지정해야 합니다. 자바는 TransferQueue 인터페이스, 링크드 트랜스퍼큐의 하나의 구현과 함께 제공됩니다. 다음 예제에서는 우선 순위 큐를 사용하여 요소 컬렉션을 정렬합니다.

이 프로그램은 컬렉션에 제공된 정렬 메서드에 찬성하여 사용할 이유가 없지만 우선 순위 큐의 동작을 보여 준다는 점에서 인위적입니다. + PriorityQueue: 이 대기열은 자연 순서에 따라 또는 건설 시 제공된 비교기에서 요소를 정렬합니다. 기본 설정큐를 사용하는 것이 좋습니다 자연 순서의 장점을 활용 하 고 신속 하 게 꼬리에 요소를 추가 하 고 큐의 머리에 요소를 빠르게 제거 합니다. FIFO(선착순)가 큐의 요소를 정렬하는 가장 일반적인 방법입니다. 이 예제에서는 큐를 처리하기 위해 작업을 표시합니다. Queue 구현에서 큐구현이 보유하는 요소의 수를 제한할 수 있습니다. 이러한 큐를 경계라고 합니다. java.util.concurrent의 일부 큐 구현은 경계가 있지만 java.util의 구현은 그렇지 않습니다. element() 및 peek() 메서드는 큐의 헤드를 제거하지 않지만 반환합니다. + 링크드 리스트: 이 클래스는 목록 및 Deque 인터페이스를 모두 구현하므로 목록 및 큐의 하이브리드 특성과 동작이 있습니다. 양쪽 끝에서 요소를 빠르게 추가하고 빠르게 제거하려는 경우 LinkedList를 사용하는 것이 좋습니다.