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

标签 java sorting

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

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

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

最佳答案

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

关于java - 对大量对象进行排序的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510987/

相关文章:

java - 如何将 Java POJO 转换为 JSON 字符串?

java - Jframe JLabel,仅当我调整窗口大小时才刷新图像

php - 为什么这个 usort 没有对日期数组进行排序?

c++ - 如何快速从已排序的 vector 中获取已排序的子 vector

java - 在java中对数组的ArrayList进行排序

java - IntelliJ IDEA 没有 Java 10 'var' 的代码完成?

java - 并行运行 100 个线程,如果之前的一些线程已完成,则运行缺失的线程

java - Android/Java 中删除\b

Python 连接和排序 3 个数据帧

c - C歧义中的选择排序