com.google.common.collect.ImmutableSet
的{{3}}表明有两种方法可以从ImmutableSet<E>
类型的元素创建E
的实例(例如E e1
和{{1} }})已经不在集合中(即忽略从现有集合创建的E e2
方法):
&#34;&#34;方法
copyOf
生成器:
ImmutableSet<E> set = ImmutableSet.of(e1, e2);
两种方法最终都使用ImmutableSet<E> set = new ImmutableSet.Builder<E>().add(e1).add(e2).build();
,但我应该选择哪一种?
答案 0 :(得分:14)
这完全取决于你将如何构建ImmutableSet
。如果您在一个地方提供了所有可用元素,请直接使用of(E...)
方法。那肯定会更短。
但是如果以某种方式,你从不同的地方获取元素,那就意味着,你的对象状态不会在一个地方完成,而是在流量上累积数据之后。然后你必须采用Builder
方式。创建一个Builder
,并在收到时继续添加元素。然后,当您完成后,只需致电build()
即可获得ImmutableSet
。