(一)
Collection
(二)
Map
- 集合主要是两组(单列集合,双列集合)
- Collection 接口有两个重要的子接口 List Set,他们都是单列集合
- Map接口的实现子类 是双列集合,存放的K-V
Collection:单列集合
List:有序,元素可以重复
ArrayList:用数组实现,有序,查找快(按索引查找),增删慢(牵扯到数组的增容问题);
LinkedList:链表数据结构实现,有序,查找慢(查找时需要遍历),增删快;
Vector:原理跟ArrayList相同,只是他增加了线程安全,效率略低;
Set:无序,元素不可重复
HashSet:线程不安全,存取速度快,底层以哈希表实现;
TreeSet:红黑树的数据结构,默认对数据进行自然排序。比较两个对象返回的值为0的时候,元素重复;
Map:键值对,键不可重复,值可重复
HashMap:线程不安全(不支持同步),存取速度快,底层以哈希表实现,HashMap则允许有一个键值为null和多个value为null
TreeMap:红黑树的数据结构,默认对数据进行自然排序。比较两个对象返回的值为0的时候,元素重复;
HashTable:同步,不允许null做键值和value,
数组数据结构
特点:
查询和修改快
增加和删除满
ArrayList和Vector的底层是使用数组的数据结构
在ArrayList中初始化的长度是10,如果长度不够用了,每次会增加之前长度的50%,然后将旧的集合中的数据拷贝到新的集合中。Vecto