Java中各集合特点的分析

List(有序,可重复):

  1. Vector 底层数据结构是数组,查询快,增删慢,线程安全,效率低。
  2. ArrayList 底层数据结构是数组,查询快,增删慢 , 线程不安全,效率高。
  3. LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高。

Set(无序,唯一):

  1. HashSet 底层数据结构是哈希表; 哈希表依赖两个方法:hashCode()和equals() ,执行顺序:首先判断hashCode()值是否相同,如果是,继续执行equals(),看其返回值如果为true说明元素重复,则不添加 ,如果是false就添加到集合 。若hashCode()值不相同:就直接添加到集合
  2. LinkedHashSet 底层数据结构由链表和哈希表组成。链表保证元素有序,哈希表保证元素唯一。
  3. TreeSet 底层数据结构是红黑树。(是一种自平衡的二叉树) 根据比较的返回值是否是0来保证元素唯一性,其元素的排序通常为两种方式,第一种方式为自然排序(元素具备比较性) ,让元素所属的类实现Comparable接口 , 第二种方式为比较器排序(集合具备比较性) ,让集合接收一个Comparator的实现类对象。

Map(映射):

  1. Map集合的数据结构仅仅针对键有效,与值无关。存储的是键值对形式的元素,键唯一,值可重复。
  2. HashMap 底层数据结构是哈希表。线程不安全,效率高 ; 哈希表依赖两个方法:hashCode()和equals();hashCode()和equals()执行顺序为 : 首先判断hashCode()值是否相同,如果是true则继续执行equals(),若返回值是true, 则说明元素重复,不添加,反之则添加; 若首先判断hashCode()值是false, 则添加到集合中。
  3. LinkedHashMap 底层数据结构由链表和哈希表组成;链表保证元素有序, 哈希表保证元素唯一。
  4. Hashtable 底层数据结构是哈希表。线程安全,效率低; 哈希表依赖两个方法:hashCode()和equals();hashCode()和equals()执行顺序为 : 首先判断hashCode()值是否相同,如果是true则继续执行equals(),若返回值是true, 则说明元素重复,不添加,反之则添加; 若首先判断hashCode()值是false, 则添加到集合中。
  5. TreeMap 底层数据结构是红黑树(一种自平衡的二叉树) ,其根据比较的返回值是否是0来保证元素唯一性, 元素的排序通过两种方式:第一种是自然排序(元素具备比较性) 即让元素所属的类实现Comparable接口,第二种是比较器排序(集合具备比较性) ,即让集合接收一个Comparator的实现类对象。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值