我有一种情况,我想从集合(列表)中删除重复项,然后加入它们。 我想为Joiner做一个扩展,但这是不可能的,因为所有构造函数都是私有的。
以下是我们所做的代码片段:
Collection<String> tokens = newArrayList();
for (int i = 0; i < numOfFoundTitles; i++) {
if (!tokens.contains(titlesInRange.get(i).titleAsTokens)) {
tokens.add(titlesInRange.get(i).getTitleAsTokens());
}
}
return titleTokensJoiner.join(tokens);
有什么建议吗? 我想到了Function / Predicate,但它们并不适合那里。
由于
的Eyal
答案 0 :(得分:9)
return titleTokensJoiner.join(ImmutableSet.copyOf(tokens));
简短,甜美,正确。 ImmutableSet
保留原始输入的顺序,但忽略第一次出现后元素的重复出现。