java.util.LinkedList集合数据的结构底层是一个链表结构,是一个双向链表结构,方便元素的添加和删除。
我们在开发中对一个链表集合中的元素大量的都是采用首尾结点操作(添加和删除):常用的API方法如下:
- public void addFirst(E e):将指定的元素添加此列表的开头。
- public void addLast(E e):将指定的元素添加此列表的末尾
- public E getFirst():获取此列表的首节点元素
- public E getLast():获取此列表的末尾结点
- public E removeFirst():删除此列表的首节点元素
- public EremoveLast():删除此列表的尾结点
- public E pop():从此列表所表示的堆栈中弹出一个元素(首元素)
- public void push(E e):将元素推入此列表所表示的堆栈中(首元素)
- public boolean isEmpty():如果此列表不包含任何元素,返回true
LinkedList集合的特点: - 链表结构:增删快,查询慢
- 里面包含了大量的首尾节点操作的方法
- 允许所有元素(包括null)
- 此实现不是同步的。如果多个线程同时访问一个链表列表,而其中至少有一个线程从结构上修改了该列表,则它必须保持外部同步
- 元素是有序的
public static void main(String[] args) {
show03();
}
/**
* - public E removeFirst():删除此列表的首节点元素
* - public EremoveLast():删除此列表的尾结点
* public E pop():从此列表所表示的堆栈中弹出一个元素(首元素)
*/
public static void show03(){
//构建LinkedList集合
LinkedList<String> linkedList = new LinkedList<>();
//添加元素
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
String str01 = linkedList.removeFirst();
System.out.println("被移除的首元素为:"+str01);
String str02 = linkedList.removeLast();
System.out.println("被移除的尾元素为:"+str02);
//pop
String str03 = linkedList.pop();
System.out.println("被移除的首元素为:"+str03);
System.out.println(linkedList);
}
/**
* - public E getFirst():获取此列表的首节点元素
* - public E getLast():获取此列表的末尾结点
* -public void push(E e):将元素推入此列表所表示的堆栈中(首元素)
* - public boolean isEmpty():如果此列表不包含任何元素,返回true
*/
public static void show02() {
//构建LinkedList集合
LinkedList<String> linkedList = new LinkedList<>();
//添加元素
linkedList.add("a");
linkedList.add("b");
linkedList.add("c");
System.out.println(linkedList);
//linkedList.clear();//清空集合当中的所有元素 再次获取会报错
if (!linkedList.isEmpty()) {
String str01 = linkedList.getFirst();
System.out.println(str01);//a
String str02 = linkedList.getFirst();
System.out.println(str02);//a
String str03 = linkedList.getLast();
System.out.println(str03);
}
}
public static void show01() {
//构建LinkedList集合
LinkedList<String> linkedList = new LinkedList<>();
//添加一个元素
linkedList.addFirst("a");
linkedList.addFirst("b");
linkedList.addFirst("c");
System.out.println(linkedList);
System.out.println("------------------------");
linkedList.addFirst("www");
linkedList.addFirst("zhiyou100");
linkedList.addFirst("com");
System.out.println(linkedList);
System.out.println("-------------------------");
linkedList.addLast("java");
linkedList.addLast("python");
linkedList.addLast("php");
System.out.println(linkedList);
System.out.println("-------------------------");
linkedList.push("小孙");
linkedList.push("小王");
System.out.println(linkedList);
}