LinkedList是无同步性,线程不安全的。
LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
package 框架;
import java.util.ArrayList;
import java.util.LinkedList;
/**
* Created by Administrator on 2018\3\29 0029.
*/
public class List {
public static void main(String[] args) {
LinkedList l1=new LinkedList();
printLinkedList(l1);
}
public static void printLinkedList(LinkedList l1){
Emp e1=new Emp("1","zhou",10000);
Emp e2=new Emp("2","shu",10000);
Emp e3=new Emp("3","ting",10000);
//add
l1.add(e1);
System.out.println(l1.size());
//addFirst表示把对象加载到(链表)队列的最前面
l1.addFirst(e2);
//addLast表示把对象加载到(链表)队列的最后面
l1.addLast(e3);
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
System.out.println();
//remove
l1.remove(e1);
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
System.out.println();
l1.clear();
System.out.println(l1.size());
System.out.println(l1.peekFirst());//检索但不删除此列表的第一个元素,如果此列表为空,则返回 null 。
l1.add(e1);
l1.add(e2);
l1.add(e3);
//链表为:
System.out.println("链表为");
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
System.out.println();
System.out.println("检索但不删除此列表的头(第一个元素)"+((Emp)l1.peek()).getEmpName());//检索但不删除此列表的头(第一个元素)。
System.out.println("poll demo");
System.out.println("检索并删除此列表的头(第一个元素)"+ ((Emp)l1.poll()).getEmpName());//检索并删除此列表的头(第一个元素)。
System.out.println("原来l1有三个元素,poll后元素");
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
System.out.println();
System.out.println("pop demo");//从此列表表示的堆栈中弹出一个元素。
System.out.println(((Emp)l1.pop()).getEmpName());//pop弹出栈顶元素,相当于弹出链表的第一个
System.out.println("pop弹出后元素");
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
System.out.println();
System.out.println("push demo");
//push 将元素推送到由此列表表示的堆栈上。
l1.push(e1);//相当于把这个元素插入链表的里一个元素。
for(int i =0;i<l1.size();i++){
System.out.print(((Emp)l1.get(i)).getEmpName()+" ");
}
}
}
结果截图: