FIFO based Queue implementations?

JavaCollectionsQueue

Java Problem Overview


I need a simple FIFO implemented queue for storing a bunch of ints (I don't mind much if it is generics implementation).

Anything already baked for me in java.util or Trove/Guava library?

Java Solutions


Solution 1 - Java

Yeah. Queue

LinkedList being the most trivial concrete implementation.

Solution 2 - Java

Here is example code for usage of java's built-in FIFO queue:

public static void main(String[] args) {
	Queue<Integer> myQ = new LinkedList<Integer>();
	myQ.add(1);
	myQ.add(6);
	myQ.add(3);
	System.out.println(myQ);   // 1 6 3
	int first = myQ.poll();    // retrieve and remove the first element
	System.out.println(first); // 1
	System.out.println(myQ);   // 6 3
}

Solution 3 - Java

ArrayDeque is probably the fastest object-based queue in the JDK; Trove has the TIntQueue interface, but I don't know where its implementations live.

Solution 4 - Java

A LinkedList can be used as a Queue - but you need to use it right. Here is an example code :

@Test
public void testQueue() {
    LinkedList<Integer> queue = new LinkedList<>();
    queue.add(1);
    queue.add(2);
    System.out.println(queue.pop());
    System.out.println(queue.pop());
}

Output :

1
2

Remember, if you use push instead of add ( which you will very likely do intuitively ), this will add element at the front of the list, making it behave like a stack. >So this is a Queue only if used in conjunction with add.

Try this :

@Test
public void testQueue() {
    LinkedList<Integer> queue = new LinkedList<>();
    queue.push(1);
    queue.push(2);
    System.out.println(queue.pop());
    System.out.println(queue.pop());
}

Output :

2
1

Solution 5 - Java

Queue is an interface that extends Collection in Java. It has all the functions needed to support FIFO architecture.

For concrete implementation you may use LinkedList. LinkedList implements Deque which in turn implements Queue. All of these are a part of java.util package.

For details about method with sample example you can refer FIFO based Queue implementation in Java.

PS: Above link goes to my personal blog that has additional details on this.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRajat GuptaView Question on Stackoverflow
Solution 1 - JavaJohn BView Answer on Stackoverflow
Solution 2 - JavaDavidNgView Answer on Stackoverflow
Solution 3 - JavaLouis WassermanView Answer on Stackoverflow
Solution 4 - JavaGautamView Answer on Stackoverflow
Solution 5 - JavaAniket ThakurView Answer on Stackoverflow