java学习集合二 Set集合 Map集合

Set系列集合的特点

            无序:存取顺序不一样

            不重复 可以除去重复

             无索引 没有带索引的方法 所以不能使用普通的for循环遍历 也不能通过缩影获得元素

Set 集合实现类特点

            HashSet : 无序 、 不重复 、无索引

            LinkedHashSet : 有序 不重复 无索引

           TreeSet : 排序、不重复、无索引

Set集合的功能上基本与Collection的API一致

           HashSet 集合低层采用哈希表存储的数据

           哈希表是一种对于增删改查数据性能都比较好的结构

LinkedHas个Set 集合概述和特点

  l 有序 、不重复、无索引。
   l 这里的有序指的是保证存储和取出的元素顺序一致

          底层数据结构是依然哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。

TreeSet 集合概述和特点

           不重复 无索引 可排序

            可排序 按照元素的大小默认升序*(从小到大)排序

            TreeSet 集合底层是基于红黑树的数据节构实现排序的 增删改查性能都比较好

             注意:TreeSet集合是一定要排序的,可以将元素按照指定的规则进行排序

TreeSet 集合默认的规则

              对于数值类型:Integer ,double 默认升序

               对于字符串类型  默认按照首字符的编号升序

               对于自定义如Student 对象 TreeSet无法直接排序

自定义排序规则

                  方法一  实现Comparable接口 重写里面的compare方法定制规则

                  方法二 TreeSet 集合有参数构造器 可以设置Comparator接口对应的比较器对象,来定制规

 两种方式中,关于返回值的规则

                如果认为第一个元素大于第二个元素返回正整数即可。

                如果认为第一个元素小于第二个元素返回负整数即可。

                如果认为第一个元素等于第二个元素返回0即可,此时Treeset集合只会保留一个元素,认为两者重复。

   

总结

        

TreeSet集合的特点怎么样

              可排序 不重复 无索引

                底层基于红黑树实现排序 增删改查性能较好

TreeSet 自定义排序规则

              类实现Comparable接口 ,重写比较规则

               集合自定义 Comparator比较器对象, 重写比较器规则

Collection 

1. 如果希望元素可以重复,又有索引, 索引 查询要快
l 用ArrayList集合 ,基于数组的 。(用的最多)

2.  如果希望元素可以重复,又有索引,增删首尾操作快?

l LinkedList 集合 ,基于链表的

 

3.  如果希望增删改查都快,但是元素不重复、无序、无索引。

l HashSet 集合 ,基于哈希表的

4.  如果希望增删改查都快,但是元素不重复、有序、无索引。

l LinkedHashSet 集合 ,基于哈希表和双链表

 

 

5.  如果要对对象进行排序。

TreeSet集合,基于红黑树后续也可以用List集合实现排序

Collections 集合工具类

            Collections 并不属于集合,是用来操作集合的工具类

Collections 常用的API

                    

 Collections 排序相关的API

          使用范围只能对List集合的排序

              

 map集合概括和使用

          Map 集合是一种双列集合,每一个元素都包含两个数据

          Map集合的每一个元素的格式:key = value 键对值元素

          Map集合  键对值集合

 Map集合整体格式

          Collection集合的格式: [元素1,元素2,元素3.。。。。]

           Map 集合的完整格式 {key1=value1,key2=value2....}

Map 集合体系

                 

 说明 

       使用最多的是Map 集合是HashMap

        重点掌握HashMap,LinkedHashMap TreeMap 

Map 集合的键无序 不重复

               值 可以重复  不做要求

Map 集合体系特点

             Map 集合的特点都是由键决定的

             Map 集合的键是无序的 不重复 无索引的 值不做要求的

            Map 集合后面重复的键对应的值会覆盖前面的重复键的值

              Map 集合的键值都可以为null

Map 集合实现类的特点

            HashMap 元素按照键是无序的 不重复的 无索引的 值不做要求 (与map体系一样)

            LinkedHashMap 元素按照键有序 不重复 无索引 值不做要求

            TreeMap 元素按照 键是排序的 不重复的 无索引的 值不做要求

Map 是双列集合的祖宗接口 他的功能是全部双重集合都可以继承使用的

            Map API如下

             

 

Map 集合的遍历方式有三种

           方式一  键找值的方式遍历 先获取Map 集合全部键 再根据遍历键找值

                           Set<K> keySet() 获取所有键的集合

                           V get(Object key) 根据键获取值

           方式二   键值对的方式遍历 吧键对值 看成一个整体 难度

                     先把 Map 集合转换成 Set 集合, Set 集合中每个元素都是键值对实体类型了
 
                     遍历Set集合,然后 提取键以及提取值

 

HashMap  的特点

                 HashMapMap里面的一个实现类。特点都是由键决定的:无序、不重复、无索引

                 l没有额外需要学习的特有方法,直接使用Map里面的方法就可以了。

                 HashMapHashSet底层原理是一模一样的,都是哈希表结构,只是HashMap的每个元素包含两个值而已 

       实际上:Set系列集合的底层就是Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。    

 

LinkedHashMap 集合概述和特点

       由键决定:有序、不重复、无索引

        l这里的有序指的是保证存储和取出的元素顺序一致

        l原理:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。

TreeMap   集合和特点概述

         l由键决定特性:不重复、无索引、可排序    

          l可排序:按照键数据的大小默认升序(有小到大)排序。只能对键排序。

          l注意:TreeMap集合是一定要排序的,可以默认排序,也可以将键按照指定的规则进行排序

           lTreeMapTreeSet一样底层原理是一样的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值