gpt4 book ai didi

java - 'Collections.sort(intervals, new Comparator() { [...]'是什么意思?

转载 作者:行者123 更新时间:2023-11-30 07:01:55 26 4
gpt4 key购买 nike

我遇到了一种合并重叠间隔的方法。它有一个部分我不明白:

Collections.sort(intervals, new Comparator<Interval>() {
@Override
public int compare(Interval i1, Interval i2) {
return Integer.compare(i1.start, i2.start);
}
});

它到底在做什么并返回什么?

最佳答案

它有什么作用:java中的Collections类有一个带有签名的方法 sort(List<T> list, Comparator<? super T> c) .

第一个参数是您要排序的列表,第二个参数是比较器。

new Comparator<Interval>() {
@Override
public int compare(Interval i1, Interval i2) {
return Integer.compare(i1.start, i2.start);
}
}

这是一个简短的方法( inner class ),否则您需要编写自己的类来实现 Comparator。

简而言之,这可能会返回 -1, 0, +1

您可以决定何时返回哪个值。

在这种情况下,您调用 Integer.compare比较像这样 -1 (i1 < i2) | 0 (i1==i2) | +1 (i1>i2)

Collection.sort 使用此信息对列表进行排序,但它实际上什么也不返回。

Comparators 的示例

编辑:当您比较 I1 的开头时,顺序将为 { (1,9),(2,4),(4,7),(6,8) }和I2 .

This接受的答案也许很有趣。

关于java - 'Collections.sort(intervals, new Comparator<Interval>() { [...]'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775755/

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