【发布时间】:2015-11-11 12:33:12
【问题描述】:
在 Java 中,我有一个带有对象列表的 ArrayList。每个对象都有一个只是长数据类型的日期字段。 ArrayList 按日期字段排序。我想在 ArrayList 中插入一个新对象,以便它出现在关于其日期的正确位置。我能看到的唯一解决方案是遍历所有项目并将被插入对象的日期字段与被迭代的对象进行比较,然后在我到达正确位置时将其插入。如果我必须插入大量记录,这将是一个性能问题。
有哪些可能的方法来提高这种性能?也许 ArrayList 不是最好的解决方案?
【问题讨论】:
-
你可以使用二分查找找到插入点。
-
具体来说,
Collections.binarySearch()。但是不,ArrayList 很可能不是最好的结构。 -
您可能需要考虑使用不同的集合类型,可能是
TreeSet,并使您的项目Comparable。然后你就可以开箱即用了。
标签: java