8.8.4 设置不可变集合
Collections
提供了如下三类方法来返回一个不可变的集合。
方法 | 描述 |
---|---|
emptyXxx() |
返回一个空的、不可变的集合对象,此处的集合Xxx 既可以是List ,也可以是SortedSet,Set,List ,可以是Map 、 SortedMap 等. |
singletonXxx() |
返回一个只包含指定对象(只有一个或一项元素)的、不可变的集合对象,此处的集合Xxx 既可以是List ,还可以是Map . |
unmodifiableXxx(Xxx xxx) |
返回指定集合对象的不可变视图,此处的集合Xxx 既可以是List ,也可以是Set ,SortedSet ,还可以是Map 、 SorteMap 等。 |
上面三类方法的参数是原有的集合对象,返回值是该集合的”只读”版本。通过Collections
提供的三类方法,可以生成”只读”的Collection
或Map
。
实例
1 | import java.util.*; |
上面程序的三行粗体字代码分别定义了一个空的、不可变的List
对象,一个只包含一个元素的、不可变的Set
对象和一个不可变的Map
对象。不可变的集合对象只能访问集合元素,不可修改集合元素。所以上面程序中①②③处的代码都将引发UnsupportedOperationException
异常。
原文链接: 8.8.4 设置不可变集合