七月q 2021-11-25 15:19 采纳率: 100%
浏览 42
已结题

请问一下各位为什么我的排序没反应啊

问题遇到的现象和发生背景

把数据存到了集合中,本来想利用Collections.sort方法的,按照字典格式排序,但不知道为什么,排序一直失败

问题相关代码,请勿粘贴截图
import java.util.*;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        for(int i = 1 ;i <= 100000;i ++){
            long sum =0;
            int len = String.valueOf(i).length();
            int a [] = new int[len];
            String si = String.valueOf(i);
            for(int j = 0;j < len;j++)
                a[j] = si.charAt(j)-'0';
            for(int j = 0;j < len;j ++){
                long count = 1;
                for(int k = 1;k <= a[j];k++)
                    count *= k;
                sum += count;
            }
            if(sum == i)
                list.add(i);

        }
        Collections.sort(list);
        for(int i : list)
            System.out.print(i+" ");
    }
}


运行结果及报错内容

1 2 145 40585

我想要达到的结果

1 145 2 40585

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-11-25 15:22
    关注

    因为是int类型,所以采用的是值比较。

    import java.util.*;
    public class Main {
    public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<String>();
            for(int i = 1 ;i <= 100000;i ++){
                long sum =0;
                int len = String.valueOf(i).length();
                int a [] = new int[len];
                String si = String.valueOf(i);
                for(int j = 0;j < len;j++)
                    a[j] = si.charAt(j)-'0';
                for(int j = 0;j < len;j ++){
                    long count = 1;
                    for(int k = 1;k <= a[j];k++)
                        count *= k;
                    sum += count;
                }
                if(sum == i)
                    list.add(i+"");
    
            }
            Collections.sort(list);
            for(String i : list)
                System.out.print(i+" ");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月25日