gra*_*aci 0 java sorting arraylist compareto comparator
我对此很陌生,如果这是一个陈腐的问题,那就很抱歉.我有一个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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我尝试做一个Arrays.sort(inputNodes)inputNodes是一个ArrayList ...但是我得到了错误:
no suitable method found for sort(ArrayList<Node>)
Arrays.sort(inputNodes);
Run Code Online (Sandbox Code Playgroud)
我该如何正确地做到这一点?我的排序btw ...必须按照boundingNodes数组的大小排序.
使用 Collections.sort(inputNodes)
Arrays.sort用于排序数组.
您当前的compareTo方法不会为每个代码路径返回一个整数.您可以使用Integer.compare
public int compareTo(Node node) {
return Integer.compare(borderingNodes.length, node.borderingNodes.length);
}
Run Code Online (Sandbox Code Playgroud)