284/285jdk9对集合添加的优化of方法和Debug追踪

  1. JDK9的新特性:
  2. List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
  3. static List of (E…elements)
  4. 使用前提:
  5. 当集合中存储的元素个数已经确定了,不再改变时使用
  6. 注意:
  7. 1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
  8. 2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
  9. 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追踪  

 
  1. 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序

    debug1

  2. 点击Debug运行模式
    debug2

 

程序停止在断点上不再执行,而IDEA最下方打开了Debug调试窗口

debug3

 

 

Debug调试窗口介绍

 

 

debug4

快捷键F8,代码向下执行一行,第九行执行完毕,执行到第10行(第10行还未执行)

debug5
 切换到控制台面板,控制台显示 请录入一个字符串: 并且等待键盘录入

debug6

快捷键F8,程序继续向后执行,执行键盘录入操作,在控制台录入数据 ababcea

debug7

此时到达findChar方法,快捷键F7,进入方法findChar

debug8

快捷键F8 接续执行,创建了map对象,变量区域显示

debug9

快捷键F8 接续执行,进入到循环中,循环变量i为 0,F8再继续执行,就获取到变量c赋值为字符‘a’ 字节值97

debug10

快捷键F8 接续执行,进入到判断语句中,因为该字符 不在Map集合键集中,再按F8执行,进入该判断中

debug11

快捷键F8 接续执行,循环结束,进入下次循环,此时map中已经添加一对儿元素

debug12

快捷键F8 接续执行,进入下次循环,再继续上面的操作,我们就可以看到代码每次是如何执行的了

debug13

 

如果不想继续debug,那么可以使用快捷键F9,程序正常执行到结束,程序结果在控制台显示

debug14

 

posted @   ja不会va  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示