【发布时间】:2014-06-02 19:23:31
【问题描述】:
我目前正在研究一个最低优先级队列,该队列在添加项目时保持自身排序。建议的实现将新项目添加到排序的 ArrayList 的末尾,然后通过列表返回以找到项目的正确位置。因此它与列表中的每个前一个元素交换,直到添加的项目是有序的。
建议我在此方法之前使用的实现涉及通过排序列表进行比较,标记要插入项目的索引,然后使用 Java 的 add(int index, Object O) 方法,而不是仅仅添加到末尾。
我试图了解两者之间的性能差异。我知道如果我插入,所有尾随索引都必须更正(由类方法处理)。但这真的比通过列表交换回来效率低吗?
提前感谢您的任何解释
【问题讨论】:
-
那么,在您将元素添加到末尾然后将列表向下交换到正确位置之前?
-
为什么不使用 TreeSet?
-
@spudone 使用ArrayList的具体要求
标签: java performance arraylist