有没有重复的列表实现?
2022-08-31 10:51:10
我知道 SortedSet
,但在我的情况下,我需要一些实现的东西,而不是 。那么,在API中还是在其他地方是否有实现呢?List
Set
我自己实施应该不难,但我想为什么不先问问这里的人呢?
我知道 SortedSet
,但在我的情况下,我需要一些实现的东西,而不是 。那么,在API中还是在其他地方是否有实现呢?List
Set
我自己实施应该不难,但我想为什么不先问问这里的人呢?
标准库中没有 Java 集合可以执行此操作。LinkedHashSet<E>
保留了与 类似于 a 的顺序,因此,当您想要将其用作 a 时,如果您将集合包装在 a 中,您将获得所需的语义。List
List
List
或者,Commons Collections(或,对于通用版本)有一个已经可以做你想要的事情:SetUniqueList
/ SetUniqueList<E>
。commons-collections4
List
这是我所做的,它的工作原理。
假设我有一个工作,我做的第一件事就是创建了一个新的.ArrayList
LinkedHashSet
LinkedHashSet<E> hashSet = new LinkedHashSet<E>()
然后,我尝试将新元素添加到 .add 方法不会更改 ,如果新元素重复,则返回 false。因此,这成为我可以在添加到 .LinkedHashSet
LinkedHasSet
ArrayList
if (hashSet.add(E)) arrayList.add(E);
这是一种简单而优雅的方法,可防止重复项被添加到数组列表中。如果需要,可以将其封装在扩展 .只需记住通过循环遍历元素并调用add方法进行处理即可。ArrayList
addAll