JAVA集合学习Queue
程序员文章站
2024-03-18 11:17:46
...
Queue类似于队列数据结构(FIFO),不允许随机访问,接口定义了以下一些方法:
--void add(Object e):将指定元素加入到队列尾部;
--Object element();获取队列头部文件,但是不删除该元素;
--boolean offer(Object e)将指定元素加入队列尾部,比add()方法好用;
--Object peek()获取头部元素,但不删除该元素,空则null;
--Object poll()获取头部元素,并删除,如果为空,则返回null;
--Object remove()获取头部元素,并删除;
-------LinkedList和PriorityQueue是Queue的2个实现类
LinkedList同时是List的实现类,也是个List集合,其又实现了Queue接口的一个子接口Deque,代表一个双向队列,因此定义了一些额外可以双向操作的队列方法;
因此LinkedList同时具有栈和队列的操作方法;
LinkedList ll = new LinkedList();
//将元素添加到队列尾部
ll.offer("a");
//将元素入栈
ll.push("b");
//将元素添加到队列头部
ll.offerFirst("c");
for(int i = 0; i < ll.size(); i++){
System.out.println(ll.get(i));
}
//访问并不删除队列第一个元素
ll.peekFirst();
//访问并不删除队列最后一个元素
ll.peekLast();
//采用出栈方式将第一个元素出栈
ll.pop();
//反问删除最后一个元素
ll.pollLast();
PriorityQueue按元素大小顺序排列的队列,因此用peek或poll方法取得的不是第一个入队列的元素,而是队列最小的元素,方法跟普通队列一样;(不允许有null元素)
上一篇: Java集合框架-Queue