java集合太多…
Collection接口 - 根接口
List接口 - 有序,重复
ArrayList - 底层数据结构,动态数组
动态数组,线程不安全,效率高
查询快,增删慢(移动所有数据)
LinkedList - 底层数据结构, 链表
链表, 线程不安全,效率高
查询慢,增删快,特別适用于批量插入、删除数据
Vector - 底层数据结构,数组
数组,线程安全,效率低
查询快,增删慢
Set接口 - 无序、唯一,提供了按索引訪問的方式。
HashSet - 底层数据结构, 哈希表
依赖两方法hashCode()和equals():对象equals 是true的話,hashCode需要相同,但是hashCode相同的对象不一定equals,這就是所谓的冲突現象,但是有不同的冲突解決方法。你的hashCode()设计的好的话冲突也就小了。比如给出的超出int范围之后这种hashCode()实现,对象肯定是无序的,但是hash实现是有限的呢,所以冲突了
LinkedHashSet - 底层数据结构, 链表和哈希表
有序,不重复,链表保证有序, 哈希表保证唯一
TreeSet - 底层数据结构, 红黑树
一种自平衡的二叉樹。返回值是否为0,唯一性
Map接口 -键值对、键唯一、值不唯一
HashMap - 底层数据结构,哈希表
线程不安全,效率高
依赖两方法, hashCode()和equals()判断是否添加到集合
LinkedHashMap - 底层数据结构, 链表和哈希表
有序,不重复,链表保证有序, 哈希表保证唯一
Hashtable - 底层数据结构,哈希表
哈希表, 线程安全,效率低
TreeMap- 底层数据结构, 红黑树
返回值是否为0,唯一性
Iterator接口
所有的集合类都实现这个接口,用法:
- hasNext()是否还有下一個元素。
- next()返回下一個元素。
- remove()刪除当前元素。