【发布时间】:2011-12-08 12:15:54
【问题描述】:
我有一个数据结构,我目前正在为此使用ArrayList。我意识到在这个结构中我不希望出现任何重复。我的第一个想法是使用某种形式的集合,但是顺序也很重要。经过一番谷歌搜索和收集文档后,我发现 LinkedHashSet 几乎可以完成这项工作。不幸的是,保留顺序的主要原因之一是因为我使用 ArrayList 的 get(int index) 方法进行随机访问,而我看不到任何解决方法。
更简洁 - 我需要一个保持顺序并允许随机访问的集合。到目前为止,我看过的所有类都没有提供此功能。有谁知道提供这个的课程,还是我必须自己做?如果是后一种情况,在创建这样一个人们都知道的结构时是否有任何陷阱?
(或者,一种从 ArrayList 或类似结构中检查和删除重复项的快速简便的方法就足够了)
编辑:为清楚起见,重要的是元素添加到列表中的顺序,而不是它们相互比较的方式
【问题讨论】:
-
使用 TreeMap
. -
您可以在类型和整数之间使用双向映射。 commons.apache.org/collections/api-3.1/org/apache/commons/… 这样既可以保证唯一性,又可以快速查找。不过,您将需要一个用于新整数键的全局计数器。
-
@Maurício:这行不通。 Map 允许重复值。限制仅在键上。
标签: java list collections set