1

我有以下简单的类,包含一个字符串和一个 Int。

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

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

4

2 回答 2

1

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

于 2012-11-22T11:55:53.550 回答
0

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

于 2012-11-22T10:48:55.360 回答