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个最小元素