采用LinkedList设计栈和队列
-
LinkedList集合的底层原理
-
基于双链表实现的。
-
特点:查询慢,增删相对较快,但对首尾元素进行增删改查的速度是极快的。
-
public void addFirst(E e)
-
public void addLast(E e)
-
public E getFirst()
-
public E getLast()
-
public E removeFirst()
-
public E removeLast()
点击查看代码
package com.itheima.javase;
import java.util.LinkedList;
/**
* LinkedList集合的底层原理
*
* 基于双链表实现的。
*
* 特点:查询慢,增删相对较快,但对首尾元素进行增删改查的速度是极快的。
*
*public void addFirst(E e)
*
* public void addLast(E e)
*
* public E getFirst()
*
* public E getLast()
*
* public E removeFirst()
*
* public E removeLast()
*/
public class LinkedListDemo {
public static void main(String[] args) {
//队列: 先进先出 后进后出,排队有序入场-叫号系统
LinkedList<Character> queue=new LinkedList<>();//不要用多态写,List集合用不了LinkedList集合特有的方法
//入队,每次进入到队列的尾部
for(char i='A';i<='Z';i++)
queue.addLast(i);
System.out.println(queue);
//出队,每次都是从队列头部出列
for (char i = 'A'; i <='Z' ; i++) {
System.out.print(queue.removeFirst()+" ");
}
System.out.println("\n============================================================\n");
//栈:先进后出,后进先出,压弹匣 栈顶 栈底 ,设计手枪弹夹
LinkedList<Character> stack=new LinkedList<>();
//进栈 压栈 push
for(char i='A';i<='Z';i++)
//stack.addFirst(i);
stack.push(i);
System.out.println(stack);
//弹栈 出栈 pop
for(char i='A';i<='Z';i++)
//System.out.print(stack.removeFirst()+" ");
System.out.print(stack.pop()+" ");
}
}
[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
============================================================
[Z, Y, X, W, V, U, T, S, R, Q, P, O, N, M, L, K, J, I, H, G, F, E, D, C, B, A]
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
浙公网安备 33010602011771号