Java에서 마지막 N 요소를 저장하기 위한 크기 제한 대기열
이 문서는 Java 프로그래밍의 일반적인 문제인 대기열 관리를 해결하는 것을 목표로 합니다. 새 요소를 추가할 때 이전 요소를 자동으로 삭제하는 고정 크기입니다. 질문에 수동으로 제공되는 구현은 확실히 실행 가능하지만 이 토론에서는 Apache Commons Collections 라이브러리의 대체 솔루션을 탐색합니다.
Apache Commons Collections: CircularFifoQueue
Apache Commons 컬렉션은 CircularFifoQueue<>라는 클래스를 제공합니다. 크기가 제한된 대기열의 요구 사항을 충족합니다. 문서에 따르면:
CircularFifoQueue는 고정된 크기를 가진 선입 선출 대기열로 가득 차면 가장 오래된 요소를 대체합니다.
사용:
CircularFifoQueue<>를 사용하여 크기가 제한된 대기열 구현 간단합니다:
import java.util.Queue; import org.apache.commons.collections4.queue.CircularFifoQueue; Queue<Integer> fifo = new CircularFifoQueue<>(2); fifo.add(1); fifo.add(2); fifo.add(3); System.out.println(fifo); // Output: [2, 3]
결과:
샘플 코드는 CircularFifoQueue가 2의 용량을 유지하고 새 요소가 추가되면 가장 오래된 요소를 삭제함을 보여줍니다.
추가 옵션:
이전 버전의 Apache Commons Collections(3.x)를 사용하는 경우 기능적으로 유사하지만 일반 지원이 부족한 CircularFifoBuffer를 선택할 수 있습니다.
결론:
제한된 크기의 대기열을 관리해야 하는 상황을 위해 Apache Commons Collections는 다음을 제공합니다. CircularFifoQueue<>를 사용하여 편리하고 효율적으로 구현합니다. 이렇게 하면 수동으로 구현할 필요가 없으며 예외 처리 및 스레드 안전성이라는 추가 이점을 제공합니다.
위 내용은 Java에서 크기 제한 대기열을 효율적으로 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!