java - Collections.sort() 不排序单个数字

标签 java android sorting comparable

这是我的数据集[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);
        }
    }

关于java - Collections.sort() 不排序单个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163393/

相关文章:

java - 计算机猜测你的想法所需的猜测次数

java - 将 PATH 保存到文件

java - Eclipse 无法创建就地编辑器

java - 将字符串转换为 JSON 数组

algorithm - 具有子节点的节点的排名算法?

java - Webstart 和 JavaCompiler API 限制

android - 背景颜色( ListView ?)

android - Android Studio/Gradle可在2台Mac上运行。在第3个上无法使用。

c++ - 基数桶搜索

excel - 检查 Excel 中是否存在损坏的超链接