Joa*_*vcm 3 java sorting collections types
我有一个String []类型的数组列表.我想用String [0]作为int来命令它.我有这个:
Collections.sort(listitems, new Comparator<String[]>() {
@Override
public int compare(String[] lhs, String[] rhs) {
return lhs[0].compareToIgnoreCase(rhs[0]);
}
});
Run Code Online (Sandbox Code Playgroud)
但这个顺序是这样的:
10
11
12
2
20
21
3
4
5
我试图转换lhs[0]和rhs[0]向int,但int类型不会有什么样比较的,我不知道是什么类型的int,我需要返回
Jon*_*eet 10
结果compare意味着:
因此,如果您确定每个数组的第一个字符串可以解析为整数,我会使用:
@Override
public int compare(String[] lhs, String[] rhs) {
int leftInt = Integer.parseInt(lhs[0]);
int rightInt = Integer.parseInt(rhs[0]);
return leftInt < rightInt ? -1
: leftInt > rightInt ? 1
: 0;
}
Run Code Online (Sandbox Code Playgroud)
Java 1.7有一个有用的Integer.compare方法,但我认为你无法使用它.您可以使用,Integer.compareTo但这可能会产生比您真正想要的移动设备更多的垃圾......
请注意,即使当leftInt且rightInt非常大或可能为负时,这也会起作用- 从另一个值中减去一个值的解决方案假定减法不会溢出.
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |