从斗地主规则理解 Java 不可变集合 📅 2026/7/17 11:59:27 目录一. 怎样理解不可变集合二. 不可变集合的应用场景三. 不可变集合的创建和使用温馨提示JDK8版本中不支持不可变集合建议升级至JDK11版本以上一. 怎样理解不可变集合谈到不可变部分小伙伴可能会联想到 final被 final 修饰的对象引用不可修改。通常情况下我们所说的不可变主要针对于基本数据类型和引用数据类型。对于基本数据类型而言不可变通常意味着值不能再发生改变如下代码int number 100; final int number2 200;number 没有被 final 修饰所以后续代码中我们可以对 number 的值进行修改number2 被 final 修饰所以后续代码中不可再对 number2 的值进行修改对于引用数据类型而言不可变通常说的是引用关系不可变但引用的对象值是可以改变的而今天所要说的不可变集合则更为特殊不可变集合被创建之后集合的长度不可变内容也不能改只能对不可变集合进行查询操作不能进行增删改操作。二. 不可变集合的应用场景1如果某些数据不希望被修改把它放在不可变集合中是一个很好的选择2当集合对象被不可信的库调用时集合内部数据不可变也保证了数据的安全性不可变集合经典使用场景有我们常玩的斗地主斗地主中已经规定好了的规则可以将规则放在不可变集合中之后则不能修改也不能再继续添加只能按照已经规定好的游戏规则去进行。三. 不可变集合的创建和使用在 Java 中创建不可变集合直接调用 xxx.of 静态方法即可并且在创建的时候就需要对集合中的值进行初始化如下代码所示public static void main(String[] args) { // 创建不可变集合 list ListString list List.of(张三,李四,abc); // 创建不可变集合 set SetString set Set.of(占山, lisi, abcc); // 创建不可变集合 map MapString,String map Map.of(1,a,2,b,3,c); System.out.println(list); System.out.println(set); System.out.println(map); }然后我们调用 list.add() 方法发现方法报错不支持的操作异常下面的 Set 和 Map 我就不重复尝试了感兴趣的小伙伴可以自行动手操作一遍。还有一点需要额外注意不可变 Set 集合在进行初始化的过程中也是不允许有相同的元素存在的哦如果存在相同的元素在打印时会报错如下所示