java集合之Set与List总结

java集合之Set与List总结

Set集合(理解)

         (1)Set集合的特点

                  无序,唯一

         (2)HashSet集合(掌握)

                  A:底层数据结构是哈希表(是一个元素为链表的数组)

                  B:哈希表底层依赖两个方法:hashCode()和equals()

                    执行顺序:

                          首先比较哈希值是否相同

                                   相同:继续执行equals()方法

                                            返回true:元素重复了,不添加

                                            返回false:直接把元素添加到集合

                                   不同:就直接把元素添加到集合

                  C:如何保证元素唯一性的呢?

                          由hashCode()和equals()保证的

                  D:开发的时候,代码利用eclipse自动生成即可。

      

         (3)TreeSet集合

                  A:底层数据结构是红黑树(是一个自平衡的二叉树)

                  B:保证元素的排序方式

                          a:自然排序(元素具备比较性)

                                   让元素所属的类实现Comparable接口

                          b:比较器排序(集合具备比较性)

                                   让集合构造方法接收Comparator的实现类对象

                 

3:Collection集合总结(掌握)

         Collection

                  |--List      有序,可重复

                          |--ArrayList

                                   底层数据结构是数组,查询快,增删慢。

                                   线程不安全,效率高

                          |--Vector

                                   底层数据结构是数组,查询快,增删慢。

                                   线程安全,效率低

                          |--LinkedList

                                   底层数据结构是链表,查询慢,增删快。

                                   线程不安全,效率高

                  |--Set       无序,唯一

                          |--HashSet

                                   底层数据结构是哈希表。

                                   如何保证元素唯一性的呢?

                                            依赖两个方法:hashCode()和equals()

                                            开发中自动生成这两个方法即可

                                   |--LinkedHashSet

                                            底层数据结构是链表和哈希表

                                            由链表保证元素有序

                                            由哈希表保证元素唯一

                          |--TreeSet

                                   底层数据结构是红黑树。

                                   如何保证元素排序的呢?

                                            自然排序

                                            比较器排序

                                   如何保证元素唯一性的呢?

                                            根据比较的返回值是否是0来决定

                                           

4:针对Collection集合我们到底使用谁呢?(掌握)

         唯一吗?

                  是:Set

                          排序吗?

                                   是:TreeSet

                                   否:HashSet

                           如果你知道是Set,但是不知道是哪个Set,就用HashSet。

                         

                  否:List

                          要安全吗?

                                   是:Vector

                                   否:ArrayList或者LinkedList

                                            查询多:ArrayList

                                            增删多:LinkedList

                            如果你知道是List,但是不知道是哪个List,就用ArrayList。

        

              如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。

        

              如果你只知道用集合,就用ArrayList。

        

5:在集合中常见的数据结构(掌握)

         ArrayXxx:底层数据结构是数组,查询快,增删慢

         LinkedXxx:底层数据结构是链表,查询慢,增删快

         HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()

         TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值