gpt4 book ai didi

java - 如何使 compareTo 按字母顺序对列表进行排序?

转载 作者:行者123 更新时间:2023-11-29 08:17:58 25 4
gpt4 key购买 nike

如何更改我的代码,使其按字母顺序从 a 到 z 列出元素。现在它从 z 到 a 排序。我想不通,卡住了 :-/

    String sName1 = ((Address)o).getSurname().toLowerCase();
String sName2 = (this.surname).toLowerCase();
int result = (sName1).compareTo(sName2);

return result;

谢谢:)

最佳答案

只需交换您正在比较的对象。

int result = (sName2).compareTo(sName1);

通常,对于升序排序,您希望左侧是this 对象的一部分,右侧是other 对象的一部分。对于降序排序,您只需交换两侧(您最初就是这样做的)。

为了使您的代码更直观,我宁愿交换 sName1sName2 的分配:

String sName1 = (this.surname).toLowerCase();
String sName2 = ((Address)o).getSurname().toLowerCase();
int result = (sName1).compareTo(sName2);

并去掉匈牙利符号和不必要的括号。总结如下:

public class Address implements Comparable<Address> {
private String surname;
// ...

public int compareTo(Address other) {
return this.surname.toLowerCase().compareTo(other.surname.toLowerCase());
}
}

如果您不能保证姓氏永远不会 null,您可能需要添加 nullchecks。

另请参阅:

关于java - 如何使 compareTo 按字母顺序对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933024/

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