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 设置不可变集合