不可变集合的应用场景:
1、当某个数据不能被修改,可以防御性的拷贝到不可变集合
2、当集合对象被不可信的库调用时,不可变形式是安全的
书写格式:

代码演示:
public class Main {
public static void main(String[] args) {
List<String> list = List.of("qwe", "szd", "opshg");
System.out.println(list);
list.add("saaaa");
System.out.println(list);
}
}
运行结果:

注意点:
1、创建Set和Map的不可变集合时,数据(Set的值和Map的键)不能重复
2、Map里面的of方法,参数有上限,最多只能传递20个参数,即10个键值对
如果想要创建Map的不可变集合,并且键值对数量超过10个,需要使用ofEntries方法,操作是:
1、创建一个普通的Map集合
//创建一个简单Map对象
HashMap<String,String> hm = new HashMap<>();
hm.put("🦊","18");
2、获取所有的键值对对象(Entry对象)
//获取所有的键值对对象
Set<Map.Entry<String, String>> entries = hm.entrySet();
3、把Entry变成一个数组
//把entry变成一个数组
Map.Entry[] arr1 = new Map.Entry[0];
Map.Entry[] arr2 = entries.toArray(arr1);
//将获取到的数组对象传递给不可变集合
Map map = Map.ofEntries(arr2);
简化版代码:
//简易版代码
Map<Object, Object> map1 = Map.ofEntries(hm.entrySet().toArray(new Map.Entry[0]));
注意:如果是jdk10版本以后,可以直接使用Map.copyOf(Map对象)直接创建不可变集合。





