ArrayList和LinkedList有什么区别:
- 1.ArrayList底层结构是顺序表(基于数组); LinkList是链表;
- 2.ArrayList数据存放在内存空间上; LinkList不是存放在连续的内存空间上;
- 3.ArrayList能够高效的进行 “随机访问 ” ,按照下面操作时间复杂度是O(1);
- 4.LinkList能够高效的进行插入删除,时间复杂度为O(1)
- 5.ArrayList在初始化的时候,可以通过capacity参数指定最大容量,当add尾插的时候,如果元素个数小于capacity,此时就会触发扩容操作。 LinkedList没有capacity这个概念,每次新插入一个元素,都去new一个特定的节点对象
- 6.ArrayList比较害怕内存碎; LinkedList不怕
List代码实现
public class TestWrapperClass {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
System.out.println(list);
System.out.println("==============");
System.out.println(list.get(0));
list.set(0,"d");
System.out.println(list);
System.out.println(list.subList(1,3));
List<String> arrayList = new ArrayList<>(list);
List<String> linedkList = new LinkedList<>(list);
System.out.println("=====相当于复制了List======");
System.out.println(arrayList);
System.out.println(linedkList);
ArrayList<String> arrayList1 = (ArrayList<String>)list;
}
}