Java各种集合各自特点和数据结构

Collection 单列集合
|-List 有序,可重复
|-ArrayList
底层是数组,查询快,增删慢
线程不安全,效率高
|-Vector
底层是数组,查询快,增删慢
线程安全,效率低
|-LinkedList
底层是链表,查询慢,增删快
线程不安全,效率高

|-Set 无序,唯一
|-HashSet
底层是哈希表
哈希表唯一依赖两个方法:hashCode(),equals();
执行顺序:
先看哈希值是否相同即hashCode():
是:调用equals()方法,判断返回值
是true:不添加
是false:添加到集合
否:直接添加
|—LinkedHashSet
底层是哈希表和链表
哈希表保证元素唯一
链表保证元素有序
|-TreeSet 自动排序
底层是红黑树,自然平衡二叉树
保证元素唯一性:
看元素返回值是否为0来决定
有两种排序方法
自然排序:元素具备比较性
元素所在的类实现Comparable接口,重写compareTo()方法
比较器排序:集合具备比较性
让集合接收一个实现Comparator的类对象,重写compare()方法

Map 双列集合
A:Map集合的数据结构仅对键有效,对值无效
B:Map集合中存储的是键值对的元素,键唯一,值可以重复

|-HashMap
底层是哈希表
哈希表唯一依赖两个方法:hashCode(),equals();
执行顺序:
先看哈希值是否相同即hashCode():
是:调用equals()方法,判断返回值
是true:不添加
是false:添加到集合
否:直接添加
|—LinkedHashSet
底层是哈希表和链表
哈希表保证元素唯一
链表保证元素有序
|—Hashtable
与HashMap区别:Hashtable线程安全,效率低,不允许null键null值
  HashMap线程不安全,效率高,允许null键null值
|-TreeMap
底层是红黑树,自然平衡二叉树
保证元素唯一性:
看元素返回值是否为0来决定
有两种排序方法
自然排序:元素具备比较性
元素所在的类实现Comparable接口,重写compareTo()方法
比较器排序:集合具备比较性
让集合接收一个实现Comparator的类对象,重写compare()方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值