Java之不可变集合
-
不可变集合就是不可被修改的集合。
-
集合的数据项在创建的时候提供,并且在整个生命周期中都不可被改变。否则报错
为什么要创建不可变集合?
-
如果当某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的选择。
-
或者当集合对象被不可信的库调用时,不可变形式是安全的。
如何创建不可变集合?
在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集合对象 |
代码实现
基于jdk17:
//1、不可变的list集合 List<Double> lists= List.of(700.0,564.5,156.5,500.0); // lists.add(689.0);会报错 // lists.set(2 , 698.5); // System.out.println(lists); double score = lists.get(1); System.out.println(score); //2、不可变集合Set集合 Set<String> names = Set.of("王文君","王文军","王文马","王文牛"); // names.add("王文驴"); System.out.println(names); //3、不可变的Map集合 Map<String , Integer> maps = Map.of("华为手机",2,"苹果手机",3); // maps.put("vivo手机",2); System.out.println(maps);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix