JAVA基础——图解集合体系

   图解集合,一目了然!
Collection(单列集合)Map(双列集合)
           |--Collection(单列) 
                               |--List(有序,可重复)
                                        |--ArrayList
                                                 底层数据结构是数组,查询快,增删慢。 
                                                 线程不安全,效率高。 
                                         |--Vector
                                                 底层数据结构是数组,查询快,增删慢。 
                                                  线程安全,效率低。
                                         |--LinkedList        

                                                 底层数据结构是链表,查询慢,增删快。 
                                                 线程不安全,效率高。 
                              |--Set(可能无序,肯定唯一)
                                        |--HashSet
                                                 底层数据结构是哈希表。 
                                                 线程不安全,效率高。 

                                                 怎么保证唯一性的呢? 
                                                 它依赖两个方法:hashCode()和equals() 
                                                 顺序: 
                                                           首先判断hashCode()值是否相同。 
                                                           同:继续走equals(),看返回值 
                                                                     如果true:就不添加到集合。 
                                                                     如果false:就添加到集合。 
                                                           不同:就添加到集合。 
                                        |--TreeSet
                                                 底层数据结构是二叉树。 
                                                 线程不安全,效率高。 

                                                 怎么保证唯一性的呢?是根据返回是否是0。 
                                                 怎么保证排序的呢?两种方式 
                                                           自然排序(元素具备比较性) 
                                                                     实现Comparable接口 
                                                           比较器排序(集合具备比较性) 
                                                                     实现Comparator接口
           |--Map(双列 底层结构是针对键有效,跟值无关) 
                               |--HashMap
                                       底层数据结构是哈希表。 
                                       线程不安全,效率高。允许null键和值 

                                       怎么保证唯一性的呢? 
                                       它依赖两个方法:hashCode()和equals() 
                                       顺序: 
                                                 首先判断hashCode()值是否相同。 
                                                 同:继续走equals(),看返回值 
                                                           如果true:就不添加到集合。 
                                                           如果false:就添加到集合。 
                                                 不同:就添加到集合。 
                               |--Hashtable
                                       底层数据结构是哈希表。 
                                        线程安全,效率低。不允许null键和值

                                       怎么保证唯一性的呢? 
                                       它依赖两个方法:hashCode()和equals() 
                                       顺序: 
                                                 首先判断hashCode()值是否相同。 
                                                 同:继续走equals(),看返回值 
                                                           如果true:就不添加到集合。 
                                                           如果false:就添加到集合。 
                                                 不同:就添加到集合。 
                              |--TreeMap
                                       底层数据结构是二叉树。 
                                       线程不安全,效率高。 

                                       怎么保证唯一性的呢?是根据返回是否是0。 
                                       怎么保证排序的呢?两种方式 
                                                 自然排序(元素具备比较性) 
                                                           实现Comparable接口 
                                                 比较器排序(集合具备比较性) 
                                                           实现Comparator接口

Collection(  接口 )单列集合
List(  接口 )
有序,不唯一
Set(  接口 )
可能无序,肯定唯一
Vector(  )
ArrayList(  )
LinkecList(  )
HashSet(类)
TreeSet(类)
1、底层数据结构是数组,查询快,增删慢

2、线程安全,效率低 (只有Vector是线程安全的)
1、底层数据结构是数组,查询快,增删慢

2、线程不安全,效率高
1、底层数据结构是链表,增删快,查询慢

2、线程不安全,效率高
1、底层数据结构是哈希表

2、通过重写 hashCode()  equals()  保证唯一性


3、线程不安全,效率高

(如果元素相同不操作,所以不会覆盖)
1、 底层数据结构是二叉树

2、通过判断 compareTo compare  方法的返回值是否为  0 来判断是否重复

3、排序有两种方案:
实现 Comparable 接口重写  compareTo 方法
实现 Comparator 接口重写  compare 方法

4、线程不安全,效率高

(如果元素相同不操作,所以不会覆盖)
    

    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值