背景
由于Map.of()(jdk-9出现)创建的不可变集合无法超过20个参数,所以可以使用下面的办法创建
Map<Object,Object> map = Map.ofEntries(hm.entrySet().toArray(new Map.Entry[0]));
原理
arr1装的下使用arr1,否则新创建。
Map<String,String> hm = new HashMap<>();
hm.put("张三","南京");
hm.put("李四","北京");
Set<Map<String,String>> entries = hm.entrySet();
Map.Entry[] arr1 = new Map.Entry[0];
Map.Entry[] arr2 = entries.toArray(arr1);
Map map = Map.ofEntries(arr2);
改进
这种方法写起来比较麻烦,所以java将其封装进了Map.copyOf()(jdk-10出现),这个方法可以将可变或者不可变的集合返回一个不可变集合,没有参数大小限制。
Map<String,String> map = Map.copyOf(hm);
标签:Map,20,创建,arr1,hm,Entry
From: https://www.cnblogs.com/blanset/p/17038311.html