【Java基础进阶笔记】- Day04 - 第二章 补充知识点

Java基础进阶笔记 - Day04 - 第二章 补充知识点

Java基础进阶笔记 - Day04 - 第二章 补充知识点

系统:Win10
JDK:1.8.0_121
IDE:IntelliJ IDEA 2017.3.7

2.1 JDK9对集合添加的优化

通常,我们在代码中创建一个集合(例如:List或者Set),并直接用一些元素填充它。实例化集合后,add方法重复调用,使得代码重复

public class Demo01 {
    
    
    public static void main(String[] args) {
    
    
        List<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王二");
        System.out.println(list);
    }
}

Java9,添加了几种集合工厂方法,更方便创建少量元素的集合、map实例。新的List、Set、Map的静态工厂方法可以更加方便创建集合的不可变实例
例如:

public class Java9 {
    
    
    public static void main(String[] args) {
    
    
        List<String> list = List.of("a", "b", "c");
        // list.add("d");这里编译时不会报错,但是执行的时候会报错,因为是不可变的集合
        System.out.println(list);
        // Set<String> set = Set.of("a", "b", "a");Set集合不能有重复值,不然执行会报错
        Set<String> set = Set.of("a", "b", "c");
        System.out.println(set);
        // Map<String, Integer> map = Map.of("a", 1, "a", 2, "c", 3); Map集合的key不能重复,不然执行会报错
        Map<String, Integer> map = Map.of("a", 1, "b", 2, "c", 3);
        System.out.println(map);
    }
}

需要注意一下三点:

1.of()方法只是List、Set、Map这三个接口的静态方法,其父类接口和子类实现并没有这类方法,比如ArrayList、HashSet、HashMap等
2.返回的集合是不可变的,不能使用add、put方法继续添加数据
3.Set的值不能重复,Map的key也不能重复

猜你喜欢

转载自blog.csdn.net/qq_35132089/article/details/112055169