Java中的Map体系和集合嵌套

知识模块
一.LinkedHashSet类

二.Map体系:
    1.Map概述:
    2.Map体系常用方法:
    3.Map体系两种遍历方式:
    4.LinkedHashMap特点
    5.集合嵌套
    6.Arrays类:
    7.泛型限定:
    8.Collections类

详细代码点击下方链接去gitte查看
JavaSE: Java基础

一.LinkedHashSet类
    LinkHashSet使用:
        特点:可以去除重复元素,(去除重复元素的原理和HashSet相同,底层依赖HashCode()与euqals()方法;
             可以保证元素的存取顺序一致

二.Map体系:
   1.Map概述:
     Map<K,V>:K代表 key;V代表 value
     Map体系集合会存储键值对 key = value
     学生的学号和姓名
       学号     姓名
       01      张三
       02      李四
       03      王五
     人的身份证号
        身份证号      姓名
        ****         张无忌
        ****         周芷若

   2.Map体系常用方法:
       HashMap中的方法:
         key的特点:
                HashMap保证key唯一,底层原理依然是通过HashCode()方法与equals()方法来保证key的唯一
                HashMap中存取的键值对顺序和取出的顺序不一定相同



           V put(K key, V value)
                  将键值对添加到key与map中
                  返回值:
                       如果当前添加的key与map中已有的key都不相同,那么这个put方法返回null
                       如果当前添加的key与map中已有的key重复,此时会将key对应的心智覆盖掉老值,同时返回老值
           V get(Object key)
                  根据key获取value
                  如果key在当前map不存在,那么返回null
           int size()
                  返回的是当前map中键值对的个数

           void clear()
                  清空map中所有的键值对

           boolean isEmpty()
                 如果Map中没有键值对,则返回true,如果有键值对,返回false

           boolean containsKey(Object key)
                 判断指定的key在Map中是否存在,如果存在返回true,不存在返回false

           V remove(Object key)
                 根据key移除Map中的键值对,返回该key对应的value
                 如果该key对应的value不存在,返回null

   3.Map体系两种遍历方式:
       a.keySet()遍历:
           HashMap遍历
               由于Map体系没有获取迭代器的方法,所以Map体系不能通过迭代器直接遍历
               所以我么考虑将Map体系集合转换成Collection体系集合,就可以使用迭代器

                Set<K> keySet()
                     将Map中所有的key封装到一个Set集合中,然后返回这个Set集合

       b.entrySet()遍历方式
           HashMap第二种遍历方式
                Set<Map.Entry<K,V>> entrySet()

                Set:代表entrySet()返回一个Set集合

                Set<>:代表将来存储到Set集合中元素的类型

                Set<Map.Entry>:代表Set集合中存储的元素类型是Map.Entry

                Set<Map.Entry<K,V>>:代表Set集合中存储的元素类型是Map.Entry,Map.Entry指定了键(Key)和值(Value)的类型
   4.LinkedHashMap特点
           LinkedHashMap使用
               1.LinkedHashMap保证存储的key唯一(唯一原理还是依赖hashCode()方法和equals()方法)
               2.LinkedHashMap可以保证key存取顺序一致

   5.集合嵌套
           集合套嵌:集合套集合
           ArrayList<ArrayList>
           ArrayList<HashSet>
           HashMap<ArrayList,HashMap>
           Map套Map
           需求:
              一班
                 1001 张三
                 1002 李四
                 1003 王五

              二班
                 2003 无忌
                 2005 乔峰
                 2007 虚竹

             嵌套集合构造数据从内向外构建
             嵌套集遍历要从外向内遍历

   6.Arrays类:
           Arrays:一个专门操作的数组工具类,里面定义了大量操作数组方法:对数组排序,对数组二分查找....
           static<T> List<T> asList(T...a)
               asList可以将数组中的元素封装到一个集合中,然后返回这个集合

           <T> T[]
            toArray(T[] a)
                将集合中的元素封装到指定数组中,然后返回这个数组

            ArrayList类中
               ArrayList(Collection<? extends E> c)
                     构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。

   7.泛型限定:
           泛型:
              通配符
              匹配任意引用类型

           泛型限定:
           需求:
              1.首先定义三个集合,这三个集合分别存储人,学生,老师
              2.再定义一个方法,这个方法可以接受这三个集合,
                在方法内遍历集合,然后在遍历的过程中调用吃方法

              ?extends E: 泛型上限 限制传入的泛型只能为E类型或者E的子类型
              ? super  E: 泛型下限 限制传入的泛型只能为E类型或者E的父类型

   8.Collections类
           Collection接口:是单列集合的顶级父接口
           Collections类 :专门操作集合的工具类,这个类中大量方法都跟我们的集合相关
             static <T> boolean  addAll(Collection<? super T> c, T... elements)
                     将所有指定元素添加到指定 collection 中。

             static void reverse(List<?> list)
                     反转指定列表中元素的顺序。

             static void shuffle(List<?> list)
                     可以随机集合中元素
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值