为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
活动

课程名称: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);
    }

课程截图

图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消