其他分享
首页 > 其他分享> > 集合—栈与队列

集合—栈与队列

作者:互联网



1. 准备

Java的集合实现了栈与队列,我们直接调用就可以实现功能,可是平时就见过Queue、Stack、Deque这些字眼,完全不知道怎么回事,下面就来梳理一下他们的关系,先来看类图(这里简化并只关联了所需要提到的类或接口),下面只说明之前没有提到的内容,没有看过前篇的同学赶紧充电 前篇传送门





2. Queue

Queue接口不同之处在于同一个功能他有两套方法,两套方法区别于一套是实现返回值,另一套是抛出异常

Throw Exception Return value
增加 add(e) offer(e)
删除 remove() poll()
检查 element() peek()

后面讲解基于抛出异常的方法



3. Deque

double ended queue,意思是双向队列,所以该接口多了操作方法,用于操作头尾,下面讲解部分方法,其余自行查看

方法 解释
addFirst(E e) 队头增加元素
addLast(E e) 队尾增加元素
removeFirst() 队头删除元素,并返回该元素
removeLast() 队尾删除元素,并返回该元素
peekFirst() 返回队头元素,不删除
peekLast() 返回队尾元素,不删除





4. LinkedList


4.1 栈

先进后出的结构,想象成羽毛球筒就行了,先放进去的羽毛球都是最后才能拿出来的

具体实现

public static void main(String[] args) {
    
    LinkedList linkedList = new LinkedList(); 
    
    linkedList.addFirst(1);
    linkedList.addFirst(2);
    linkedList.addFirst(3);
    linkedList.addFirst(4);
    
    linkedList.removeFirst();
    
    //一定要用foreach方法,上篇有解释
    for(Object i : linkedList){
        System.out.println(i);
    }
}
3
2
1


4.2 队列

public static void main(String[] args) {
    
    LinkedList linkedList = new LinkedList(); 

    linkedList.addLast(1);
    linkedList.addLast(2);
    linkedList.addLast(3);
    linkedList.addLast(4);

    linkedList.removeFirst();

    //一定要用foreach方法,上篇有解释
    for(Object i : linkedList){
        System.out.println(i);
    }
}
2
3
4


4.3 对照表

功能 方法
进栈 addFirst(e)
出栈 remoceFirst()
取栈顶 peekFirst()

队列

功能 方法
进队 addLast(e)
出队 removeFirst()
取队首 peekFirst()





标签:linkedList,addLast,队列,Queue,addFirst,集合,LinkedList
来源: https://www.cnblogs.com/Howlet/p/12196270.html