ArrayList集合底层原理
- 利用空参构造创建集合,在底层会创建一个默认长度为0的数组
- 集合添加第一个元素时,底层会创建一个新的长度为10的数组
- 存满时,会扩容1.5倍创建新的数组
- 如果一次添加多个元素,1.5倍还放不下,则新创建的数组的长度以实际为准
LinkedList集合
集合底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快的
特有方法 | 说明 |
public void addFirst(E e) | 在该列表开头插入指定的元素 |
public void addLast(E e) | 将指定的元素追加到此列表的末尾 |
public E getFirst() | 返回此列表的第一个元素 |
public E getLast() | 返回此列表的最后一个元素 |
public E removeFirst() | 从此列表中删除并返回第一个元素 |
public E removeLast() | 从此列表中删除并返回最后一个元素 |
import java.util.LinkedList;
public class LinkedListDemo1 {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.addFirst("eee");
System.out.println(list);//[eee, aaa, bbb, ccc]
list.addLast("fff");
System.out.println(list);//[eee, aaa, bbb, ccc, fff]
String s1 = list.getFirst();
System.out.println(s1);//eee
String s2 = list.getLast();
System.out.println(s2);//fff
String s3 = list.removeFirst();
System.out.println(s3);//eee
System.out.println(list);//[aaa, bbb, ccc, fff]
String s4 = list.removeLast();
System.out.println(s4);//fff
System.out.println(list);//[aaa, bbb, ccc]
}
}