1

我正在考虑使用最适合随机插入的 Java 集合。我将插入很多内容,最后只阅读一次集合。

我想要的功能是在 <0, current_length> 之间的任意位置在指定索引处添加元素。使用哪个集合最有效?

4

2 回答 2

0

有用的链接供您参考: http: //www.coderfriendly.com/wp-content/uploads/2009/05/java_collections_v2.pdf

不完全确定您将如何阅读信息发布输入(以及它对您的重要性)。Hashmap 或 ArrayList 是否有意义取决于您要做什么。也不确定您是否正在寻找线程安全的东西。希望能帮助到你。

于 2012-06-10T18:00:34.100 回答
-2

使用效率低下List是该问题的特有现象。每次添加某些内容时,都必须重新索引每个后续元素 - 正如javadoc所述:

将当前位于该位置的元素(如果有)和任何后续元素向右移动(将其索引加一)。

从您的问题/评论来看,您似乎有一堆Objects,并且您正在对它们进行排序。我建议对这个问题更有效的解决方案是编写一个Comparator(或让你的对象实现Comparable),然后使用Collections.sort(list, comparator)(或Collections.sort(list))。

您可能会建议您Object的 s 根据其他变量进行排序。在这种情况下,您可以创建 的扩展,将Object这些其他变量作为字段和扩展Comparable,并使用类似的方法getOriginal()。您将这些包装的对象添加到列表中,排序,然后遍历列表,将原始对象 (from getOriginal()) 添加到新列表中。

有关集合排序算法的信息 - 请参阅此SO question

于 2012-06-10T20:29:45.233 回答