Java基础——LinkedList集合实现栈和队列
(1)LinkedList的特点:
- 底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首位操作的特有API。
(2)LinkedList集合的特有功能:
方法名称 | 说明 |
public void addFirst(E e) | 在该列表开头插入指定的元素 |
public void addLast(E e) | 将指定的元素追加到此列表的末尾 |
public E getFirst() | 返回此列表中的第一个元素 |
public E getLast() | 返回此列表的最后一个元素 |
public E removeFirst() | 在此列表中删除并返回第一个元素 |
public E removeLast() | 从此列表中删除并返回最后一个元素 |
(3)LinkedList集合实现栈和队列代码:
import java.util.LinkedList;/* LinkedList实现栈和队列结构(双链表)*/
public class ListDemo01 {public static void main(String[] args) {//栈:先进后出LinkedList<String> stack = new LinkedList<>();//压栈,入栈 可用stack.push("第1个");或者以下格式stack.addFirst("第1个");stack.addFirst("第2个");stack.addFirst("第3个");stack.addFirst("第4个");System.out.println(stack);//[第4个, 第3个, 第2个, 第1个]//出栈 弹栈 可用stack.pop();或者以下格式System.out.println(stack.removeFirst());//第4个System.out.println(stack.removeFirst());//第3个System.out.println(stack.removeFirst());//第2个System.out.println(stack);//[第1个]//队列:先进先出LinkedList<String> queue = new LinkedList<>();//入队 可用queue.offerLast();或者以下格式queue.addLast("1号");queue.addLast("2号");queue.addLast("3号");queue.addLast("4号");System.out.println(queue);//[1号, 2号, 3号, 4号]//出队System.out.println(queue.removeFirst());//1号System.out.println(queue.removeFirst());//2号System.out.println(queue.removeFirst());//3号System.out.println(queue);//[4号]}
}