继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第5天 Java常见集合与应用(Map)

Henry_56
关注TA
已关注
手记 25
粉丝 0
获赞 0

课程名称:Java体系课

章节名称:Java常见集合与应用(Map)

课程内容:

  • Map映射的特点
  • HashMap
  • LinkedHashMap
  • TreeMap
  • Map集合的遍历
  • Collections工具类实现排序

学习收获

  • Map映射特点
    Map用于保存具有映射关系的数据,每组映射都是key(键)与Value(值)组合而成
    Key与Value可以是任何引用类型数据,但是Key通常是String
    Map中的key不允许重复,重复为同一个key设置value,后者value会覆盖前者value
    每一对键值组成一个Entry对象
  • HashMap
    HashMap是Map接口的典型实现类,对key进行无序存储
    HashMap不能保证数据按存储顺序读取,且key全局唯一,按key的哈希值顺序
    Java先有Map后有Set,HashSet从HashMap精简而来
    使用方法:
1. get(key),返回指定key的value值
2. containsKey(key),containsValue(value),返回boolean值查看传入的key或value是否存在
3. remove(key)方法将指定的键值对删除,并将value返回
  • linkedhashmap
    与HashMap使用基本一致,在hashmap增加了链表结构,可以实现显示顺序和放入顺序一致。只要前面增加linked放入的顺序和写入顺序可以一致。
  • TreeMap
    TreeMap存储key-value对时,需要根据key对节点进行排序
    TreeMap支持两种Key排序:自然排序与定制排序
    与TreeSet相同,TreeMap也是基于红黑树结构对数据进行排序
  • Map集合的三种遍历方式
//利用for循环遍历所有key,再获取value
    public void doForLoop(Map map){
        Set<String> keys =  map.keySet();
        for(String k : keys){
            System.out.println(k + ":" + map.get(k));
        }
    }
    //利用forEach方法+Lambda表达式循环遍历(推荐)
    public void doForEach(Map map){
        map.forEach((key,value) -> {
            System.out.println(key + ":" + value);
        });
    }

    //使用迭代器对象Iterator循环遍历每一个Entry对象,通过Entry对象获取键值对
    public void doIterator(Map map){
        Iterator<Map.Entry<String,Object>> itr = map.entrySet().iterator();
        while(itr.hasNext()){
            Map.Entry<String,Object> entry = itr.next();
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
  • Collections工具类实现排序
    Collections.sort() 系统提供 默认对数据进行升序排列。调用sort()后,原始数据也会被排序
    通过实现接口Comparator,将实现类作为参数传入Collections.sort(list,new Comparator());来自定义排序
private class CustomComparator implements Comparator<Goods>{
        @Override
        public int compare(Goods o1, Goods o2) {
            //return o2.getSn().compareTo(o1.getSn());
            return o2.getTitle().compareTo(o1.getTitle());
        }
    }

    public List<Goods> sort(List<Goods> list){
        CustomComparator comp = new CustomComparator();
        Collections.sort(list, comp);
        return list;
    }

    public static void main(String[] args) {
        List<Goods> goodsList = new ArrayList<>();
        goodsList.add(new Goods("18827382190", "商品A"));
        goodsList.add(new Goods("83219078978", "商品B"));
        goodsList.add(new Goods("83241781237", "商品C"));
        goodsList.add(new Goods("18579831426", "商品D"));
        System.out.println("排序前");
        System.out.println(goodsList);
        System.out.println("排序后");
        List<Goods> list = new CustomObjectSortSample().sort(goodsList);
        System.out.println(list);
    }

课程截图

图片描述
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP