All Downloads are FREE. Search and download functionalities are using the official Maven repository.

extension.lang.EvictingBlockingQueue Maven / Gradle / Ivy

The newest version!
package extension.lang;

import java.util.concurrent.ArrayBlockingQueue;

public final class EvictingBlockingQueue {

    private final int capacity;
    private final ArrayBlockingQueue queue;

    public EvictingBlockingQueue(final int capacity) {
        this.queue = new ArrayBlockingQueue<>(capacity+10);
        this.capacity = capacity;
    }

    public T take() throws InterruptedException {
        return queue.take();
    }

    public void offer(final T object) {
        if (queue.size() >= capacity)
            queue.poll();
        queue.offer(object);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy