📜  Java 9-集合工厂方法(1)

📅  最后修改于: 2023-12-03 15:31:28.371000             🧑  作者: Mango

Java 9-集合工厂方法

Java 9中提供了一种新的方式来创建不可变的集合类,即集合工厂方法。使用这些方法可以更加简洁地创建集合对象,并且可以提高性能。

List.of方法

List.of方法用于创建不可变的List集合对象,其使用方式如下:

List<String> list = List.of("foo", "bar", "baz");

上述代码创建了一个包含三个字符串元素的不可变List对象,无法对其进行添加、删除、修改等操作。如果进行这些操作,会抛出UnsupportedOperationException异常。

Set.of方法

Set.of方法用于创建不可变的Set集合对象,其使用方式如下:

Set<String> set = Set.of("foo", "bar", "baz");

上述代码创建了一个包含三个字符串元素的不可变Set对象,同样无法对其进行添加、删除、修改等操作。

需要注意的是,Set.of方法不允许传入重复的元素,如果传入重复元素,会抛出IllegalArgumentException异常。

Map.of方法

Map.of方法用于创建不可变的Map集合对象,其使用方式如下:

Map<String, Integer> map = Map.of("foo", 1, "bar", 2, "baz", 3);

上述代码创建了一个包含三个键值对的不可变Map对象,无法对其进行添加、删除、修改等操作。

需要注意的是,Map.of方法要求传入偶数个参数,每两个参数为一组key-value对,且不允许传入重复的key,否则会抛出IllegalArgumentException异常。

Map.ofEntries方法

Map.ofEntries方法用于创建不可变的Map集合对象,其使用方式如下:

Map<String, Integer> map = Map.ofEntries(
    entry("foo", 1),
    entry("bar", 2),
    entry("baz", 3)
);

上述代码创建了一个包含三个键值对的不可变Map对象,无法对其进行添加、删除、修改等操作。

相对于Map.of方法,Map.ofEntries方法更加灵活,可以使用entry方法自由添加key-value对,且可以传入重复的key,但是value不能为null,否则会抛出NullPointerException异常。

总结

集合工厂方法提供了一种简洁、高效、不可变的集合创建方式,可以在需要不可变集合时使用。需要注意的是,由于这些集合对象不可变,因此不能进行添加、删除、修改等操作,但是可以进行查询、遍历等操作。