首页 > 解决方案 > 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]

标签: javaandroidsortingcomparable

解决方案


尝试这个:

    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);
        }
    }

推荐阅读