【发布时间】:2016-04-04 10:10:51
【问题描述】:
我需要一个保持插入顺序并具有唯一值的集合。 LinkedHashSet 看起来像是要走的路,但有一个问题 - 当两个项目相等时,它会删除最新的一个(这是有道理的),这是一个例子:
set.add("one");
set.add("two");
set.add("three");
set.add("two");
LinkedHashSet 将打印:
one,two,three
但我需要的是:
one、three、two
这里最好的解决方案是什么?是否有任何收集/收集方法可以做到这一点,或者我应该手动实现它?
【问题讨论】:
-
在插入之前使用
ArrayList和contains方法怎么样? -
我怀疑您将不得不为此实现自己的算法,可能由
HashSet支持。 -
@AvihooMamka
TreeSet保持元素根据自然或给定顺序排序,它本身并不保留插入顺序。 -
请注意,
LinkedHashSet不是final,但您将无法通过用于存储/检索元素的支持映射访问。 -
您可以使用地图。每次用户输入字母时,您都会更新此地图。
标签: java list linkedhashset