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号]

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_61275790/article/details/130025833