Java中提供了Queue队列接口,可以继承此接口实现队列的数据结构,Java中提供了以下实现类,可以根据需要选择合适的队列
@see LinkedList
@see PriorityQueue
@see java.util.concurrent.LinkedBlockingQueue
@see java.util.concurrent.BlockingQueue
@see java.util.concurrent.ArrayBlockingQueue
@see java.util.concurrent.LinkedBlockingQueue
@see java.util.concurrent.PriorityBlockingQueue
使用LinkedList作为队列:
/**
* java 基于LinkedList为底层实现的队列 (栈也可以)
* @author Linging
* @date 2019/2/10
*
*/
public class CollectionQueue {
public static void main(String[] args) {
// TODO Auto-generated method stub
Queue<String> que = new LinkedList<String>();
//将指定元素插入到队尾
que.offer("a");
que.offer("b");
que.offer("c");
//检索,但不移除队列的头,如果队列为空则返回null
System.out.println(que.peek());
//检索,但不移除队列的头,如果队列为空则会抛出一个异常
System.out.println(que.element());
//检索并移除此队列的头,如果队列为空,则返回 null
System.out.println(que.poll());
//检索并移除此队列的头,如果队列为空,则会抛出一个异常
System.out.println(que.remove());
//打印队列元素
System.out.println(que.toString());
//打印队列元素
while(!que.isEmpty()) {
System.out.println(que.poll());
}
}
}
可根据需求自行封装方法。