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