com.google.common.collect.ImmutableSet
的Javadoc提供了两种创建ImmutableSet<E>
实例的方式,这些实例由类型为E
的元素(例如E e1
和E e2
)创建,而这些元素尚未在集合中存在(即忽略使用copyOf
方法从现有集合中创建的方式):
"of"方法:
ImmutableSet<E> set = ImmutableSet.of(e1, e2);
建造者:
ImmutableSet<E> set = new ImmutableSet.Builder<E>().add(e1).add(e2).build();
这两种方法最终都使用ImmutableSet.Builder#construct
,但是我应该选择哪一种方法呢?
ImmutableSet.<E>builder()
来代替直接调用构造函数。个人而言,我会使用of(e1, e2)
的形式,因为它更加简洁明了。 - Andy TurnerBuilder
。它的代码会更长、难以理解,并且会产生无用的垃圾变量。虽然也不算太糟糕,但也没有什么优势。当然,如果你确实需要使用构造器,那就去用吧。 - maaartinus