java中基于多条件和使用其他列表的排序
我有java中基于多条件和使用其他列表的排序,java,sorting,conditional-statements,Java,Sorting,Conditional Statements,我有 请帮助我根据给定的功能列表对集群对象进行排序。我不是Java专家,但下面是我如何对自定义对象数组进行排序的。在我的示例中,我有一个Card对象数组,可以调用sortByInterval对数组进行排序(而不返回新数组)。在Comparator类中,您可以返回-1、1或0,以便添加需要比较的任何代码 input: cluster1-f2,f6,f7 cluster2-f3,f4,f5 cluster3-f9,f8 cluster4-f1,f10 cluster5-f11,f12 out
请帮助我根据给定的
功能
列表对集群
对象进行排序。我不是Java专家,但下面是我如何对自定义对象数组进行排序的。在我的示例中,我有一个Card对象数组,可以调用sortByInterval
对数组进行排序(而不返回新数组)。在Comparator
类中,您可以返回-1、1或0,以便添加需要比较的任何代码
input:
cluster1-f2,f6,f7
cluster2-f3,f4,f5
cluster3-f9,f8
cluster4-f1,f10
cluster5-f11,f12
output:
cluster4-f1,f10
cluster1-f2,f6,f7
cluster2-f3,f4,f5
cluster3-f9,f8
cluster5-f11,f12
publicstaticvoidsortbyinterval(arraylistarray){
sort(数组,新的SortByIntervalComparator());
}
私有静态类SortByIntervalComparator实现Comparator{
公共整数比较(卡卡1、卡2){
if(…)首先返回-1/-1:obj1
else if(…)首先返回1;//1:obj2
else返回0;//相等排序
}
}
这不是编码编写服务,您尝试过什么?使用comperator是设置订单的正确方法!
input:
cluster1-f2,f6,f7
cluster2-f3,f4,f5
cluster3-f9,f8
cluster4-f1,f10
cluster5-f11,f12
output:
cluster4-f1,f10
cluster1-f2,f6,f7
cluster2-f3,f4,f5
cluster3-f9,f8
cluster5-f11,f12
public static void sortByInterval (ArrayList<Card> array) {
Collections.sort(array, new SortByIntervalComparator());
}
private static class SortByIntervalComparator implements Comparator<Card> {
public int compare(Card card1, Card card2) {
if (...) return -1 // -1: obj1 first
else if (...) return 1; // 1: obj2 first
else return 0; // equal sort
}
}