Java ArrayList 集合排序

标签 java arrays sorting arraylist

我看到了一些关于 Java 中有错误的集合排序的问题。我显示的错误是这样的:

The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<Time>)

我已经导入了 java.util.Collections 和 ArrayList。我还导入了我正在调用的类。这是我的代码:

在被调用的类中:

private ArrayList<Time> times;

...

public ArrayList<Time> getTimes() {
        return this.times;
    }

在我调用数组列表的类中:

public class TimeTUI {
    private Scanner scan;
    private TimeManager timeManager;

...

private ArrayList<Time> getSortedTimes() {
    ArrayList<Time> sortedTimes = this.timeManager.getTimes();
    Collections.sort(sortedTimes);
    return sortedTimes;
}

错误出现在显示的行上:

Collections.sort(sortedTimes);

最佳答案

Time 类必须是 Comparable。

Collections.sort(List) 期望类 T 实现 Comparable 接口(interface)。如果你使用过许多内置类,你不会发现问题,但对于自定义类,sort 不知道如何对它们进行排序。因此,通过实现 Comparable 接口(interface),您可以定义方法 compareTo。

public class Time implements Comparable {
  public int compareTo(Object o) {
    // provide your logic of how to sort Time objects. 
   }
}

关于Java ArrayList 集合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803984/

相关文章:

java - 如何在 Java 中将变量发送到 Aspect?

java - MD5加密java/mysql。在Java中MD5生成31个字节而不是32个字节

php - 根据条件php添加到数组

javascript - Mongoose:查找子文档并修改它的数组?

swift - Swift 中的自定义排序

java - 将数组列表递增某个值?

java - @After 似乎在其他所有事情之前先执行

arrays - Bash 脚本和数组推送

javascript - 在javascript数组中排序和删除重复项(仅显示最新值)

arrays - 如何通过标签匹配和组匹配对该数组进行最佳排序?