gpt4 book ai didi

java - 可比较是将事物按降序排列而不是升序排列

转载 作者:行者123 更新时间:2023-12-01 07:27:45 24 4
gpt4 key购买 nike

所以,这可能只是我的一个逻辑错误,但我不确定是怎么回事。

@Override
public int compareTo( Activity t ) {
// currently we're naturally sorting by created, description, uuid
int createdComp = t.created.compareTo( created ); // created is an Instant

if ( createdComp == 0 ) {
int descComp = t.description.compareTo( description ); // description is a String
if ( descComp == 0 ) {
return t.id.compareTo( id ); // id is a UUID
} else {
return descComp;
}

}
return createdComp;
}

这是我的调试代码,对于我没有放入的代码,它使用相同的 Instant,并且 UUID 是随机生成的。

    NavigableSet<Activity> ai = new TreeSet( Arrays.asList( i, g, h, f, a, b, c, e, d ) );

assertEquals( ai.size(), 9, "NaviSet Size is 9" );

for ( Activity act : ai ) {
System.out.println( act );
}

这是输出

1a8861eb-96c8-44ef-a9a5-ffbbeaf6b09e I 2014-02-01T16:00:42.102Z
3703a83c-04b4-4ed1-bdc6-b1da083900ea H 2014-02-01T16:00:42.102Z
1e68df32-18a5-4ce1-bb12-41dd3be97e3c G 2014-02-01T16:00:42.102Z
d73b0e03-fd01-4a70-a20f-500e2cf0b3dd F 2014-02-01T16:00:42.102Z
4aba5877-ed0e-4457-800c-522e3a2b72a3 E 2014-02-01T16:00:42.102Z
a90c7dae-ef9f-453b-9416-b7916ace4b5f D 2014-02-01T16:00:42.102Z
fdbfbb6b-d39b-4f15-a309-d105f0caa7a5 C 2014-02-01T16:00:42.101Z
2ed80ac0-768e-40c3-b03a-11b417e2893f B 2014-02-01T16:00:42.101Z
ef8b27db-6102-4ca5-8803-b63bea405be3 A 2014-02-01T16:00:42.098Z

为什么它们按降序排列?我该如何修复我的代码,以便它们默认按升序排列? (显然可导航集有 asc/desc 操作)

最佳答案

你的所有比较逻辑都是颠倒的。
逻辑应该始终是“这个与那个相比”。

例如,更改这行代码:

int createdComp = t.created.compareTo( created );

致:

int createdComp = created.compareTo(t.created);

关于java - 可比较是将事物按降序排列而不是升序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500452/

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