Joiner - skipDuplicates

Eya*_*lan 3 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);
Run Code Online (Sandbox Code Playgroud)

有什么建议?我想过Function/Predicate,但它们不适合那里.

谢谢

的Eyal

Lou*_*man 9

return titleTokensJoiner.join(ImmutableSet.copyOf(tokens));
Run Code Online (Sandbox Code Playgroud)

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