一.List的特点
- List本身是有序,可重复的,所以ArrayList与LinkedList也同样是这样
二.ArrayList
- ArrayList的底层原理是数组,当创建集合并传入第一个对象时初始长度是10,当一直传入对象直到达到容量最小值时,便会创建一个比原来长1.5倍的新数组,并将原来的数组内容,都转移至新数组,原有数组将被回收,但ArrayList的最大容量为0x7fffffff
- 其数组存储方法,可以使ArrayList在遍历与查找的速度上更快一些
- 增删查改等方法的使用
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList arrayList=new ArrayList();
ArrayList arrayList1=new ArrayList();
arrayList.add("1");
arrayList.add("2");
arrayList.add(0,"3");
arrayList1.addAll(arrayList);
arrayList1.remove(0);
arrayList.remove("1");
arrayList1.removeAll(arrayList);
System.out.println(arrayList.get(0));
arrayList.set(0,"3");
System.out.println(arrayList.get(0));
arrayList.size();
arrayList.contains("1");
arrayList.clear();
arrayList.isEmpty();
}
}
三.LinkedList
- LinkedList底层原理是双向链表的存储结构,即,每一个独立的存储块都会包含上一个存储块与下一个存储块的地址,这样就可以使所有存储块连接起来,当一个存储块没有上一个存储块的地址,说明是第一个存储块,也就是头,同样最后一块存储块没有下一个存储块的地址
- 其链表的存储方式,使LinkedList在增删的操作上更有优势(增删只需要变动相邻位置的地址记录即可完成,而ArrayList增删则需要将操作位置后的所有元素挪动)
- 增删查改等方法的使用
import java.util.ArrayList;
import java.util.LinkedList;
public class Test {
public static void main(String[] args) {
LinkedList list=new LinkedList();
list.add("1");
list.addFirst("2");
list.addLast("3");
list.remove(0);
list.remove("1");
list.removeFirst();
list.removeLast();
list.get(0);
list.getFirst();
list.getLast();
list.set(0,"3");
list.size();
arrayList.contains("1");
list.clear();
list.isEmpty();
}
}