gpt4 book ai didi

java - 根据 Long 值对 ArrayList 进行排序

转载 作者:行者123 更新时间:2023-12-01 17:28:42 26 4
gpt4 key购买 nike

我正在尝试根据每个对象中长存在的值对 ArrayList 进行排序。在遵循互联网上的各种示例之后,我想出了以下代码,但它没有按预期排序(它似乎截断了对象的一部分)。

public static Comparator<Customer> compareSIN = 
new Comparator<Customer>() {
public int compare(Customer cust1, Customer other) {
String sin1 = "" + cust1.sin;
String sin2 = "" + other.sin;
return sin1.compareTo(sin2);
}
};

请告诉我我在第一段代码中遗漏了什么,导致我无法正确对对象进行排序。

谢谢!

最佳答案

从标题中我假设 Customer.sin 是一个 long - 问题是你试图将它们作为 String 进行比较然后通过它们的数值。

(示例:10000 按字典顺序小于 2 - 因此此处使用 String 是错误的)

您应该使用Long.compare() (假设java 7):

public static Comparator<Customer> compareSIN = 
new Comparator<Customer>() {
public int compare(Customer cust1, Customer other) {
return Long.compare(cust1.sin,other.sin);
}
};

关于java - 根据 Long 值对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021023/

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