
这是LinkedList的独有方法,但是他的父接口List和祖宗集合类Collection的API都可以用,相当于继承了
压栈push和出栈pop也可以这样写:

内部的源码就是addFirst和removeFirst

package com.itheima.d5_collection_list;import java.util.LinkedList;public class ListDemo03 {public static void main(String[] args) {// LinkedList 可以完成队列结构 和栈结构(双链表)// 栈LinkedList<String> stack = new LinkedList<>(); // 这里不要用多态了,因为要使用LinkedList的独有功能// 压栈,入栈stack.addFirst("第1课子弹"); // 这个addFirst方法就等于先进到第一个位置,后面的元素把它挤下去,所以先进后出stack.addFirst("第2课子弹");stack.addFirst("第3课子弹");stack.addFirst("第4课子弹"); // 因为是栈的结构是:先进后出,后进先出,所以先出来:最后一个元素System.out.println(stack); //[第4课子弹, 第3课子弹, 第2课子弹, 第1课子弹]// 出栈,弹栈// System.out.println(stack.getFirst()); // 输出第一个元素(输出第一个先出的元素,也就是最后一个进的元素)// System.out.println(stack); //[第4课子弹, 第3课子弹, 第2课子弹, 第1课子弹]System.out.println(stack.removeFirst());// 从列表中删除,并返回第一个元素System.out.println(stack); //[第3课子弹, 第2课子弹, 第1课子弹]System.out.println(stack.removeFirst()); // 删除了第一个元素 :第三颗子弹System.out.println(stack); //[第2课子弹, 第1课子弹]// 队列 : 先进先出,后进后出 queue [kjuː] 队列的意思LinkedList<String> queue = new LinkedList<>();// 入队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());// 将第一个元素从列表中删除,并返回第一个元素System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue); //[]}}
