(Java)자바 순환 Q (Circular Queue)?

 다음은 Apache Commons Collections 라이브러리 (Library) 내 CircularFifoQueue 예시입니다.

public class CircularFifoQueueTest {

    @Test
    public void test() {
        CircularFifoQueue<Integer> circularFifoQueue = new CircularFifoQueue<Integer>(5);
        for (int i = 0; i < 10; i++) {
            circularFifoQueue.add(i);
            System.out.println(circularFifoQueue);

            System.out.println(circularFifoQueue.get(circularFifoQueue.size() - 1));
        }
    }

}

다음 디펜던시 (Dependency)를 추가해봅니다.

compile 'org.apache.commons:commons-collections4:4.0'

다음은 Google Guava 라이브러리 내 EvictingQueue 예제입니다.
public class EvictingQueueTest {

    @Test
    public void test() {
        EvictingQueue<Integer> evictingQueue = EvictingQueue.<Integer>create(5);
        for (int i = 0; i < 10; i++) {
            evictingQueue.add(i);
            System.out.println(evictingQueue);
        }
    }

}

다음 디펜던시를 추가한다.

compile 'com.google.guava:guava:17.0'

Queue이기 때문에 FIFO 구조로 쓰는 것이 맞겠으나,

특별히 랜덤 엑세스가 필요한 경우에는 Apache Commons Collections를 사용하면 되겠죠?

참고하세요:
http://stackoverflow.com/questions/5498865/size-limited-queue-that-holds-last-n-elements-in-java/15156403#15156403

댓글

Designed by JB FACTORY