不可变集合就是不可以被修改的集合,长度和内容都不可以改变。
不可变集合的应用场景:
- 如果某个数据不想被修改,把它放到不可变集合中是一个很好的实践
- 当集合对象被不可信的库调用时,不可变形式是安全的
- 简单理解:就是不想让别人修改集合中的内容
创建不可变集合的书写格式:
在List、Set、Map接口中,都存在静态的of方法,可以获取一个不可变集合
方法名 | 说明 |
static <E> List<E> of(E...elements) | 创建一个具有指定元素的List集合对象 |
static <E> Set<E> of(E...elements) | 创建一个具有指定元素的Set集合对象 |
static <K,V> Map<K,V> of(E...elements) | 创建一个具有指定元素的Map集合对象 |
注:上述方法是JDK9之后的方法,JDK8不支持。
//创建不可变的List集合
//一旦创建完毕之后,是无法进行修改的,只能进行查询操作
List<String> list = List.of("张三","李四","王五","赵六");
//创建不可变的Set集合
//一旦创建完毕之后,是无法进行修改的,只能进行查询操作
Set<String> set = Set.of("张三","李四","王五","赵六");
//创建Map的不可变集合
//细节1:添加的键不能重复
//细节2:Map里面的of方法参数是有上限的,最多传递20个参数,10个键值对
总结:
1.不可变集合的特点?
- 定义完成后不能被修改、添加、删除
2.如何创建不可变集合?
- List、Set、Map接口中,都存在of方法可以创建不可变集合
3.三种方式的细节
- List:直接用
- Set:元素不能重复
- Map:元素不能重复,键值对数量最多是10个,超过10个用ofEntries方法