什么是不可变的集合呢?
不可变的集合通常来说就是不可以被修改的集合,不可以修改长度和不可以修改内容
那集合不可变有什么意义吗?
- 如果某个数据不能被修改,把它防御性底拷贝到不可变集合中是个很好的实际
- 当集合对象被不可信的库调用时,不可变形式是安全的
- 简单理解: 如果你不想让别人修改你集合中的内容时,那就提供一个不可变的集合,别人拿到这个集合的时候就只能进行查询的操作,别人是不能进行修改,删除,添加的
- 这样的例子有很多,比如: 斗地主, 斗地主中的规则, 电脑中的硬件信息...........
那如何创建一个不可变的集合呢?
在List Set Map 接口中,都存在静态的of方法,可以获取一个不可变的集合
代码实现( List集合 )
如下图我创建了一个demo3这样的一个实体类,并把要做的事加到注释中
List里面有一个of的这个方法,红色箭头表示我可以传递很多个的方法
这个集合一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作
循环查询操作
打印结果
那么接下来进行添加,修改,删除的操作,看一下
代码:
输出结果: 删除报错
集合的添加的操作,也看出来,它也报错了
接下来就是集合的修改的方法
输出结果
Set集合的代码:
Map集合的代码:
输出结果:
总结:
不可变集合的特点?
定义完成后不可以修改,了或者添加,删除
如何创建不可变集合?
List,Set,Map 接口中,都存在of方法可以创建不可变集合
三种创建方式的细节
-
list: 直接用
-
Set: 元素不能重复
-
Map: 元素不能重复,键值对数量最多是10个
-
超过10个用ofEntries的方法