ld1

 avatar
unknown
java
2 years ago
1.3 kB
5
Indexable
package util;

import java.util.Iterator;
import java.util.LinkedList;

public class LinkedListQueue<E> implements Queue<E>, Iterable<E> {

    private java.util.LinkedList<E> queue;

    public LinkedListQueue() {
        this.queue = new LinkedList<>();
    }

    //naujo elemento pridėjimui į eilės galą
    @Override
    public void enqueue(E item) {
        queue.add(item);
    }

    //pirmojo eilėje esančio elemento ištrynimui ir grąžinimui
    @Override
    public E dequeue() {
        if (queue.isEmpty()) return null;

        E item = queue.get(0);
        queue.remove(0);
        return item;
    }

    //pirmojo eilėje esančio elemento grąžinimui
    @Override
    public E peak() {
        if (queue.isEmpty()) return null;
        return queue.get(0);
    }

    //patikrinimui, ar eilė tuščia
    @Override
    public boolean isEmpty() {
        return queue.isEmpty();
    }

    @Override
    public Iterator<E> iterator() {
        return new LinkedQueueIterator();
    }

    public class LinkedQueueIterator implements Iterator{
        int index = 0;

        @Override
        public boolean hasNext() {
            return index < queue.size();
        }

        @Override
        public Object next() {
            return queue.get(index++);
        }
    }
}
Editor is loading...