我对此很陌生,如果这是一个陈词滥调的问题,我很抱歉。我有一个 ArrayList,其中 Node 是一个自定义类。这就是我的定义:
static class Node implements Comparable<Node> {
String nodeName;
String[] borderingNodes;
public Node(String nodeName, String[] borderingNodes) {
this.nodeName = nodeName;
this.borderingNodes = borderingNodes;
}
public int compareTo(Node node) {
if(borderingNodes.length > node.borderingNodes.length) {
return 1;
}
if(borderingNodes.length == node.borderingNodes.length) {
return 0;
}
if(borderingNodes.length < node.borderingNodes.length) {
return -1;
}
}
}
现在,我尝试执行 Arrays.sort(inputNodes)
其中 inputNodes 是一个 ArrayList...但是我收到了错误:
no suitable method found for sort(ArrayList<Node>)
Arrays.sort(inputNodes);
我该如何正确地做到这一点?顺便说一句,我的排序...必须根据 borderingNodes 数组的大小进行排序。
最佳答案
使用Collections.sort(inputNodes)
Arrays.sort
用于对数组进行排序。
您当前的 compareTo
方法不会为每个代码路径返回整数。您可以使用Integer.compare
public int compareTo(Node node) {
return Integer.compare(borderingNodes.length, node.borderingNodes.length);
}
关于java - 如何对对象的 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18043652/