ArrayList 的特点:
1 底层数据结构是数组
2 增加和删除的效率低,查询和修改的效率高
3 能够存储null 值
4 线程不安全,效率高
5 有索引,能够方便检索
6 元素可重复,我们自己可以通过 选择排序去重复
7 不可以排序,但是可以通过Collection.sort() 方法排序
Vector 的特点:
Vector 是老版本的 ArrayList ,唯一区别就是Vector是线程安全的
接口Deque:
实现类ArrayDeque:基于数组的双端队列
具备数组的特点;队列的功能,对端队列的功能,栈结构的功能
适用于大量查询修改操作
实现类LinkedList:基于链表的双端队列
具备链表的特点;队列的功能,对端队列的功能,栈结构的功能
适用于大量增加,删除
Set 接口的特点:
实现类:HashSet:基于哈希表结构
1 存储无序,因为对象的hashCode 值和哈希表存储的索引有关,hashCode是相对随机,所以无序
2 唯一,去重复 依赖于 hashCode 和equals 方法
3 可以存储 null ,但是 null 不能重复
实现类:treeSet:基于二叉树的结构
去重复,依赖于二叉树的存储特点,排序依赖于二叉树的取特点
有自然排序和比较器排序
实现类:LinkedHashSet :基于链表和哈希表
1 有序的,链表保证有序
2 唯一,哈希表保证唯一