Skip to main content
class MessageQueue<T> {
    private T[] buffer = null;
    private int size = 0;
    public synchronized T pop() {
        final T obj = size == 0 ? null : buffer [0];
        if (size > 0 && obj != null)
            buffer = Util.redim(--size, buffer, (Class<T>) obj.getClass());
        return obj;
    }
    public synchronized void push(final T obj) {
        if (size + 1 > (buffer == null ? 0 : buffer.length))
            buffer = Util.redim(size + 1, buffer, (Class<T>) obj.getClass());
        buffer[size++] = obj;
    }
}

Code gut. Alles gut.

Leave a Reply