Joiner - skipDuplicates

时间:2012-02-13 17:24:01

标签: guava

我有一种情况,我想从集合(列表)中删除重复项,然后加入它们。 我想为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

1 个答案:

答案 0 :(得分:9)

return titleTokensJoiner.join(ImmutableSet.copyOf(tokens));

简短,甜美,正确。 ImmutableSet保留原始输入的顺序,但忽略第一次出现后元素的重复出现。