Java LinkedList
1. LinkeList
package com.qf.demo01; import java.util.LinkedList; import java.util.List; import java.util.concurrent.SynchronousQueue; /* * 接口A: * add() * 接口B: * addFirst() * 实现类C:implements A,B * * A a = new C();//add() * B b = new C();//addFrist() * C c = new C();//add(),addFirst().. */ public class Test2LinkedList { public static void main(String[] args) { LinkedList<String> l1 = new LinkedList<>(); l1.add("aaa"); l1.add(0, "bbb");//List System.out.println(l1); l1.addFirst("ccc");//向容器的开头,添加元素,Deque System.out.println(l1); l1.addLast("ddd");//向容器的末尾,添加元素,Deque System.out.println(l1); System.out.println(l1.element());//获取容器中的第一个元素,不删除 System.out.println(l1); System.out.println(l1.getFirst());//效果同element() System.out.println(l1); System.out.println(l1.getLast());//获取最后一个元素 System.out.println(l1); l1.offer("eee");//向容器后添加元素 System.out.println(l1); System.out.println(l1.peek());//效果同element() System.out.println(l1); System.out.println(l1.poll());//获取容器中的第一个元素,并从容器中删除 System.out.println(l1); System.out.println(l1.pop());//获取栈顶元素,并移出。 System.out.println(l1); } }
2. 模拟栈
package com.qf.demo01; import java.util.LinkedList; public class Test3LinkedList { public static void main(String[] args) { /* * 栈:一种数据结构。存储数据的特点:LIFO * 后进先出 */ LinkedList<String> stack = new LinkedList<>(); stack.push("aaa");//入栈,压栈,将元素存入到栈中 stack.push("bbb"); stack.push("ccc"); System.out.println(stack); //获取-->弹栈,出栈,永远出的是栈顶元素----大白话:获取 String s1 = stack.pop(); System.out.println(s1);//弹栈,出栈,ccc System.out.println(stack); System.out.println(stack.pop());//bbb System.out.println(stack); System.out.println(stack.pop());//aaa System.out.println(stack);//空栈 // System.out.println(stack.pop()); //空栈,不能再弹了,否则异常:java.util.NoSuchElementException stack.push("fff"); System.out.println(stack); } }
3. 模拟队列
package com.qf.demo01; import java.util.LinkedList; public class Test4LinkedList { public static void main(String[] args) { /* * 使用LinkedList模拟队列的存储:特点FIFO * First In First Out * * 消息队列: */ LinkedList<String> l2 = new LinkedList<>(); l2.offer("aaa");//向队伍中添加元素,默认在队尾添加,效果同很多方法都能够实现:add(),addLast().... l2.offer("bbb"); l2.offer("ccc"); System.out.println(l2); System.out.println(l2.poll());//获取队头元素,并移除,,,aaa System.out.println(l2); System.out.println(l2.poll());//bbb System.out.println(l2); } }
4. 对比