Java随机插入集合

时间:2012-06-10 16:23:46

标签: java collections insertion

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

我想要的功能是在指定的索引处添加一个元素,在< 0,current_length>之间的任何地方。哪个系列最有效?

2 个答案:

答案 0 :(得分:0)

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

不完全确定您将如何阅读输入信息(以及它对您的重要性)。根据您的目的,Hashmap或ArrayList会有意义。也不确定你是否正在寻找线程安全的东西。 希望它有所帮助。

答案 1 :(得分:-2)

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

  

移动当前位于该位置的元素(如果有)和任何元素   右边的后续元素(在索引中加一个)。

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

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

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