- 概述
栈的优点:读取速度快,而且数据可以共享;缺点就是存在于栈中取数据时是最新的,只能从栈顶到栈头的去取数据,不灵活
StackClass.java
public class StackClass { public static void main(String[] args) { //创建一个栈 Stack s = new Stack(); s.push("A");//往栈里面添加数据 s.push("B"); s.push("C"); s.push("D"); s.push("E"); System.out.println("压栈数据:"); System.out.println(s);//打印栈里面的数据 System.out.println("------分割线-----"); System.out.println("出栈数据:"); System.out.println(s.pop()+"");//从栈里取数据 System.out.println(s.pop()+""); System.out.println(s.pop()+""); System.out.println(s.pop()+""); System.out.println(s.pop()+""); } }
以上运行的结果:
队列的优点:插入最新的数据,取出是最旧的数据,缺点就是不能实现空间共享
QueueClass.java
public class QueueClass { public static void main(String[] args) { Queue<String> qu = new LinkedList<String>();//创建一个队列,并且只能往里面放字符串类型 System.out.println("添加数据"); qu.offer("A"); qu.offer("B"); qu.offer("C"); qu.offer("D"); qu.offer("E"); for (String s : qu) { System.out.println(s+""); } System.out.println(); System.out.println("开始移除数据:"); System.out.println(qu.poll()+""); System.out.println(qu.poll()+""); System.out.println(qu.poll()+""); System.out.println(qu.poll()+""); System.out.println(qu.poll()+""); }
上面代码运行的结果如下图:
链表的优点:可以根据下标去删除,灵活性强,但是在添加数据的数据相对就慢了
public class LinkedListClass { public static void main(String[] args) { LinkedList list = new LinkedList();//创建一个链表对象 list.add("1");//往里面添加数据 list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.add("2"); System.out.println("元素 2 第一次出现的位置:"+list.indexOf("2"));//找首位数 System.out.println("元素 2 最后一次出现的位置:"+list.lastIndexOf("2"));//找尾数 } }
运行后的结果如下图:
以上就是个人对栈和队列还有链表的基本实现方式