php制作公司网站首页,百度搜索引擎排名规则,网站flash音乐播放器,深圳极速网站建设费用Java进阶之旅第五天
不可变集合
应用场景
1.如果某个数据不能被修改,把它拷贝到不可变集合中是个很好的实践2.当集合对象被不可信的库调用时,不可变形式是安全的3.不可变集合不能修改,只能进行查询
获取方式
在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的…Java进阶之旅第五天
不可变集合
应用场景
1.如果某个数据不能被修改,把它拷贝到不可变集合中是个很好的实践2.当集合对象被不可信的库调用时,不可变形式是安全的3.不可变集合不能修改,只能进行查询
获取方式
在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的集合方法: List.of(),Set.of(),Map.of()举例代码: ListString list List.of(1,2);
细节
1.当我们要获取一个不可变的Set集合时,里面的参数一定要保证唯一性.(集合的元素具有唯一性)2.Map集合中键也不能重复3.Map.of()方法最多只能传递10对键值对,它的底层没有可变参数的方法(原因: 一个方法中不能存在多个可变参数)4.当我们想要传递多个键值对进入不可变Map集合中时,我们可以使用Map.ofEntries(Entry? extends K, ? extends V... entries),它的底层就是将一个键值对看成整体,然后改成可变参数5.由于Map.ofEntries()方法使用不方便,所以一般常用Map.copyOf()方法的参数是一个Map集合,返回值就是不可变集合
代码演示 //不可变集合System.out.println(---list.of---);ListString list List.of(1,2,3);for (String s : list) {System.out.println(s);}System.out.println(---set.of---);SetString set Set.of(1,2,3);for (String s : set) {System.out.println(s);}System.out.println(---Map.of(键值对有限)---);MapString, String map Map.of(小明,13,小红,15);SetMap.EntryString, String entries map.entrySet();for (Map.EntryString, String entry : entries) {System.out.println(entry.getKey() entry.getValue());}System.out.println(---Map.of(键值对个数会变化)---);HashMapString, String hm new HashMap();hm.put(小明,13);hm.put(小红,15);hm.put(小黑,15);//最简单的方法Map.copyOf()System.out.println(---简单---);MapString, String map1 Map.copyOf(hm);SetMap.EntryString, String entries1 map1.entrySet();for (Map.EntryString, String entry : entries1) {System.out.println(entry.getKey() entry.getValue());}//复杂一点的(copyOf()封装的内容(不理解可以尝试看看别的文章System.out.println(---复杂---);MapString, String entries2 Map.ofEntries(hm.entrySet().toArray(new Map.Entry[0]));SetMap.EntryString, String entries3 entries2.entrySet();for (Map.EntryString, String entry : entries3) {System.out.println(entry.getKey() entry.getValue());}结果
---list.of---
1
2
3
---set.of---
1
2
3
---Map.of(键值对有限)---
小明 13
小红 15
---Map.of(键值对个数会变化)---
---简单---
小红 15
小黑 15
小明 13
---复杂---
小红 15
小黑 15
小明 13