繁体   English   中英

对大量对象进行排序的最有效方法

[英]Most efficient way to Sort a large list of Objects

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM