目录
ArrayList集合与LinkedList集合是List集合常用的两个子类
区别:
- Arraylist底层数据是数组,查询快、增删慢
- Linkedlist底层数据是链表,查询慢、增删快
一、LinkedList集合的基本运用
Linkedlist是List的一个实现类,所以可以直接用list的功能
public class Demo_01 {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("a");
list.add("b");
list.add("c");
// for循环遍历:
for (int i = 0; i < list.size(); i++) {
// System.out.println(i); 输出的是索引值
System.out.println(list.get(i));//输出的是元素
}
System.out.println("-------------------------------");
// 迭代器遍历:
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}
System.out.println("-------------------------------");
// 增强for循环遍历(直接list.for 回车):
for (String s : list) {
System.out.println(s);
}
}
}
二、LinkedList集合的特有功能
代码示例:
public class Demo_02 {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("a");
list.add("b");
list.add("c");
method1(list);
method2(list);
method3(list);
}
private static void method3(LinkedList<String> list) {
String first = list.getFirst();//返回该列表的首个元素
String last = list.getLast();//返回该列表的末尾元素
System.out.println(first);
System.out.println(last);
}
private static void method2(LinkedList<String> list) {
String first1 = list.removeFirst();//删除列表的首个元素并返回该元素
String last1 = list.removeLast();//删除列表的末尾元素并返回该元素
System.out.println(list);
}
private static void method1(LinkedList<String> list) {
list.addFirst("Z"); //在该列表开头插入指定元素
list.addLast("Q"); //在该列表末尾插入指定元素
}
}
三、LinkedList的源码解析
linkedlist集合的底层数据是链表,且为双向链表