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. 对比
