java集合框架
1. Map
2. List
List中的元素实现类排序,而且可以重复的存储相关元素;
List item
- ArrayList:数组线性表,就是基于数组的一个线性表只不过数组的长度可以动态改变。由于是基于数组的存储,因此他的随机访问速度极快。但不适合在线性表中间进行频繁的进行插入和删除操作(因为每次插入和删除都需要移动数组中的元素。
- 如果在初始化ArrayList的时候,没有指定初始化长度的话,默认的长度为0;
- 如果在增加新元素的时候,如果超过了原始容量,ArrayList的扩容方案为“原始容量*3/2+1;
- ArrayList不是线程安全的,如果要使用的话,用Vector,Vector的扩容方式为2倍。
- LinkedList:是一种通过双向循环链表的链式线性表。LinkedList的随机访问速度较慢,查找一个元素需要从头开始查找。
相同:都不是线程安全
不同:ArrayList基于数组存储,随机访问快,不适合插入删除操作。
LinkedList基于链表存储,随机访问慢,适合插入删除操作。
2.Set
Set中的元素不能重复,因此最多只能有一个null;
Set中的元素没有顺序,但元素在Set中的位置是固定的,是由该元素的HashCode决定的
- HashSet:底层基于HashMap来实现的,由于HashMap中的key是不允许重复的。