gpt4 book ai didi

java - 在 Java 中使用比较器

转载 作者:行者123 更新时间:2023-11-30 15:19:02 26 4
gpt4 key购买 nike

我有一个 tuple <Rank[0] , Rank[1]>并希望按升序对其进行排序,Rank[0] 可以被视为第一个数字,Rank[2] 可以被视为第二个数字。

这是我的功能:

  Arrays.sort(S,new Comparator<Tuples>() {

public int compare(Tuples a, Tuples b) {
// TODO Auto-generated method stub
return (a.Rank[0]==b.Rank[0]) ? ((a.Rank[1]<b.Rank[1]) ? 1:0) :((a.Rank[0]<b.Rank[0])? 1:0);
}
});

上面的事情并没有给出排序数组,而它是 C 等效的作品,即

int cmp(struct suffix a, struct suffix b)
{
return (a.rank[0] == b.rank[0])? (a.rank[1] < b.rank[1] ?1: 0):
(a.rank[0] < b.rank[0] ?1: 0);
}

为什么我的 java 排序不起作用。请帮忙

static  class Tuples{

int[] Rank = new int[2];
}

最佳答案

像这样的事情怎么样:

public int compare(Tuples a, Tuples b) {
int index = a.Rank[0] == b.Rank[0] ? 1: 0;
return a.Rank[index] - b.Rank[index];
}

我认为更容易阅读。

关于java - 在 Java 中使用比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com