这就是我比较2个Strings值的方法,这些值是数字形式,它工作得很好,直到收到等于或大于10的值。
所以我需要将这些值转换为整数。TXCartData
类具有String rowID
这就是我在做什么。
Collections.sort(data, new Comparator<TXCartData>() {
@Override
public int compare(TXCartData lhs, TXCartData rhs) {
return lhs.rowId.compareToIgnoreCase(rhs.rowId);
}
});
我试图将
rowID
更改为整数,但是它给了我一条错误消息,因为它期望输出为0或1,并且1==1
返回true
的false
。这就是我尝试过的。
Collections.sort(data, new Comparator<TXCartData>() {
@Override
public int compare(TXCartData lhs, TXCartData rhs) {
return Integer.parseInt(lhs.rowId)== Integer.parseInt(rhs.rowId);
}
});
数据列表非常大,我使用
Comparator
对其进行了3次排序,并获得了准确的结果。前2个是字符串,并且对它们进行了准确的排序,但在最后一个失败。 最佳答案
请尝试一下
Collections.sort(data, new Comparator<TXCartData>() {
@Override
public int compare(TXCartData lhs, TXCartData rhs) {
int n1=Integer.parseInt(lhs.rowId);
int n2=Integer.parseInt(rhs.rowId);
if (n1>=n2){
return 1;
}
return -1;
}
});