本文介绍: /传递参数Map集合,是不可集合直接返回,不是则变为不可集合返回。Map里面of方法参数是有上限的,最多只能穿20个参数,10个键值对。

可变集合

概念


应用场景


格式

例:

        //创建可变list集合
        List<String> list = List.of("张三", "李四", "王五", "赵六");

        //创建不可变的set集合
        Set<String&gt; set = Set.of("张三", "李四", "王五");

        //创建不可变的map集合
        Map<String, String> map = Map.of("张三", "南京", "李四", "上海");

注意点:

Map里面of方法参数是有上限的,最多只能穿20个参数,10个键值对

解决方案

//如果要创建的Map集合超过10个
        HashMap<String,String> hm = new HashMap<>();
        hm.put("张三","111");
        hm.put("李四","22");
        hm.put("王五","333");
        //......利用上面的数据获取一个不可变集合

        //获取到所有的键值对对象(Entry对象)
        Set<Map.Entry<String, String>> entries = hm.entrySet();
        //把entries变成一个数组
        Map.Entry[] arr = entries.toArray(new Map.Entry[0]);
        //toArray方法底层比较集合的长度数组长度
        //如果集合的长度 > 数组长度数据数组中放不下,此时会根据实际数据的个数,重新创建数组
        //如果集合的长度 < 数组长度:数据在数组中放的下,此时不会创建新的数组,而是直接用
        
        //不可变的Map集合
        Map map1 = Map.ofEntries(arr);

代码简化

Map.ofEntries(hm.entrySet().toArray(new Map.Entry[0])); //前面代码简化

Map.copyOf(); //传递参数Map集合,是不可变集合则直接返回,不是则变为不可变集合再返回


总结

原文地址:https://blog.csdn.net/qingwan_91/article/details/134693054

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43572.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注