📅  最后修改于: 2023-12-03 15:31:28.371000             🧑  作者: Mango
Java 9中提供了一种新的方式来创建不可变的集合类,即集合工厂方法。使用这些方法可以更加简洁地创建集合对象,并且可以提高性能。
List.of方法用于创建不可变的List集合对象,其使用方式如下:
List<String> list = List.of("foo", "bar", "baz");
上述代码创建了一个包含三个字符串元素的不可变List对象,无法对其进行添加、删除、修改等操作。如果进行这些操作,会抛出UnsupportedOperationException异常。
Set.of方法用于创建不可变的Set集合对象,其使用方式如下:
Set<String> set = Set.of("foo", "bar", "baz");
上述代码创建了一个包含三个字符串元素的不可变Set对象,同样无法对其进行添加、删除、修改等操作。
需要注意的是,Set.of方法不允许传入重复的元素,如果传入重复元素,会抛出IllegalArgumentException异常。
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集合对象,其使用方式如下:
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异常。
集合工厂方法提供了一种简洁、高效、不可变的集合创建方式,可以在需要不可变集合时使用。需要注意的是,由于这些集合对象不可变,因此不能进行添加、删除、修改等操作,但是可以进行查询、遍历等操作。