JAVA集合学习Queue

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,数据结构,C++,c,C#)