284/285jdk9对集合添加的优化of方法和Debug追踪
- JDK9的新特性:
- List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
- static List of (E…elements)
- 使用前提:
- 当集合中存储的元素个数已经确定了,不再改变时使用
- 注意:
- 1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
- 2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
- 3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
通常,我们在代码中创建一个集合(例如,List或Set ),并直接用一些元素填充它。实例化集合,几个add方法调用,使得代码重复。
JDK9的新特性︰
List接口, Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
static <E> List<E>of (E... eLements)
使用前提:
当集合中存储的元素的个数已经确定了,不在改变时使用
注意:
1.of方法只适用于List接口,set接口,Map接口,不适用于接接口的实现类
2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
/*
JDK9的新特性:
List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
static <E> List<E> of (E...elements)
使用前提:
当集合中存储的元素个数已经确定了,不再改变时使用
注意:
1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
*/
public class Demo08JDK9 {
public static void main(String[] args) {
List<String> list = List.of("a","b","a","c","d");
System.out.println(list); // [a,b,a,c,d]
list.add("w"); //UnsupportedOperationException:不支持操作异常
// Set<String> set = Set.of("a","b","a","c","d"); //IllegalArgumentException:非法参数异常,有重复的元素
Set<String> set = Set.of("a","b","c","d");
System.out.println(set);
set.add("w"); //UnsupportedOperationException:不支持操作异常
// Map<String,Integer> map = Map.of("张三",18,"李四",20,"张三",22); IllegalArgumentException:非法参数异常
Map<String,Integer> map = Map.of("张三",18,"李四",20);
System.out.println(map); //{张三=18,李四=20}
map.put("赵四",33); //UnsupportedOperationException:不支持操作异常
}
}
public static void main(String[] args) {
//strSet.add("c");这里编译的时候不会错,但是执行的时候会报错,
// 因为它是不可变的集合
Set<String> strSet = Set.of("迪迦", "赛文", "泰罗");
System.out.println(strSet);
Map<String,Integer> strMap = Map.of(a迪迦",1, "赛文",2);
System.out.println(strMap);
List<String> strList = List.of("迪迦","赛文");
System.out.println(strList);
}
import java.util.*; public class FuXi2 { public static void main(String[] args) { List<Integer> integers = List.of(1, 2, 2, 3, 3, 566, 5, 4, 56, 46, 5465, 46, 546, 54, 65, 46, 54);//快速添加元素的方法 返回一个不可添加或删除的集合 System.out.println(integers); for (Integer integer : integers) { System.out.println(integer); } Map<String, Integer> map = Map.of("1111", 333333, "111111", 333333);//快速添加元素的方法 返回一个不可添加或删除的集合 System.out.println(map); } }
Debug追踪
-
在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序
-
点击Debug运行模式
程序停止在断点上不再执行,而IDEA最下方打开了Debug调试窗口
Debug调试窗口介绍
快捷键F8,代码向下执行一行,第九行执行完毕,执行到第10行(第10行还未执行)
切换到控制台面板,控制台显示 请录入一个字符串: 并且等待键盘录入
快捷键F8,程序继续向后执行,执行键盘录入操作,在控制台录入数据 ababcea
此时到达findChar方法,快捷键F7,进入方法findChar
快捷键F8 接续执行,创建了map对象,变量区域显示
快捷键F8 接续执行,进入到循环中,循环变量i为 0,F8再继续执行,就获取到变量c赋值为字符‘a’ 字节值97
快捷键F8 接续执行,进入到判断语句中,因为该字符 不在Map集合键集中,再按F8执行,进入该判断中
快捷键F8 接续执行,循环结束,进入下次循环,此时map中已经添加一对儿元素
快捷键F8 接续执行,进入下次循环,再继续上面的操作,我们就可以看到代码每次是如何执行的了
如果不想继续debug,那么可以使用快捷键F9,程序正常执行到结束,程序结果在控制台显示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix