排序大型对象列表的最有效方法

时间:2012-11-22 10:44:20

标签: java sorting

我有以下简单类,包含String和Int。

private static class SuggestionAndScore
{
    private String suggestion; 
    private int score;  
}

我将列出这些可能包含 500,000 项目的对象。 根据得分值对此进行排序的最佳方法是什么?我应该让类实现Comparator并在其上使用Collections.sort还是有更好的方法? 性能至关重要因此我的问题是,我想确保我得到最佳解决方案。

2 个答案:

答案 0 :(得分:1)

需要了解的是,排序方法会将整个集合加载到内存中,因此,如果您的SuggestionAndScore对象很大(可能是因为大的建议字符串),您将消耗大量内存,甚至可能导致系统崩溃。如果您认为记忆可能是一个问题,那么使用就地排序。如果内存不是问题,那么使用TreeSet。

答案 1 :(得分:0)

如果您的所有对象都是唯一的,请使用TreeSet。由于对象已按排序顺序存储,因此性能最佳。 (你甚至不需要调用Collections.sort())

相关问题