Java 10引入了几种新方法来促进不可修改集合的创建。
List.copyOf
, Set.copyOf
和Map.copyOf
方法从现有实例创建新的集合实例。 例如:
List<String> modifiable = Arrays.asList("foo", "bar");
List<String> unmodifiableCopy = List.copyOf(list);// Note that since Java 9, you can also use "of" to create
// unmodifiable collections
List<String> unmodifiable = List.of("foo", "bar");
还有新的收集器方法toUnmodifiableList
, toUnmodifiableSet
和toUnmodifiableMap
,以允许将流的元素收集到不可修改的集合中。 例如:
// Java 10
Stream.of("foo", "bar").collect(toUnmodifiableList());// before Java 10
Stream.of("foo", "bar").collect(collectingAndThen(toList(), Collections::unmodifiableList));
翻译自: https://www.javacodegeeks.com/2018/06/stream-unmodifiable-collection.html