java - Collections.sort() 不排序单个数字
问题描述
这是我的数据集[B,A,D,C,3,10,1,2,11,14]
我想这样排序[1,2,3,10,11,14,A,B,C,D]
当我使用以下
public class ArenaModel implements Comparable<ArenaModel>{
private String sectionName;
@Override
public int compareTo(ArenaModel o) {
return sectionName.compareTo(o.sectionName);
}
在主要课程中,我做以下事情。
Collections.sort(arenaArrayList);
它进行排序,但单个数字没有排序,我得到以下结果。
[10,11,14,1,2,3,A,B,C,D]
解决方案
尝试这个:
public class ArenaModel implements Comparable<ArenaModel>{
private String sectionName;
@Override
public int compareTo(ArenaModel o) {
try {
Integer s1 = Integer.valueOf(sectionName);
Integer s2 = Integer.valueOf(o.sectionName);
return s1.compareTo(s2);
} catch (NumberFormatException e) {
// Not an integer
}
return sectionName.compareTo(o.sectionName);
}
}
推荐阅读
- vb.net - VB 加密 XML 错误 0x00 无效
- c# - 使用控制器单击按钮时如何更改 TextArea 文本?
- c# - 如何在 Selenium c# 中断言分配给 ElementId 的值?
- ios - 为什么Eureka TableView的Section header字符串总是显示大写字符???
- android - 我正在使用 Visual Studio Code 开发 react-native。我有以下问题
- javascript - 控制数组中对象的位置
- javascript - 如何理解窗口对象上的事件监听器执行?
- jquery - 类型错误:t 未定义
- ruby-on-rails - 机械化访问链接并获取页面标题
- javascript - Vue JS:从不同组件访问数据