JDK中也提供了Collections.unmodifiableXXX
方法把普通集合包装为不可变形式
Guava直接提供了不可变集合类型ImmutableXXX
, 所有不可变集合都不接受null
值
不可变集合可以用如下多种方式创建
ImmutableSet.copyOf(set)
ImmutableSet.of("a", "b", "c")
或ImmutableMap.of("a", 1, "b", 2)
public static final ImmutableSet<Color> GOOGLE_COLORS =
new ImmutableSet.Builder<Color>()
.addAll(WEBSAFE_COLORS)
.add(new Color(0, 191, 255))
.build();
所有不可变集合都有一个asList()方法提供ImmutableList视图,来帮助你用列表形式方便地读取集合元素
例如,你可以使用sortedSet.asList().get(k)
从ImmutableSortedSet
中读取第k个最小元素