数组按升序中的Ascending排序

时间:2011-07-20 18:23:18

标签: java

当我尝试在for循环中对数组进行排序时遇到了麻烦。

我给你的代码如下:

public class Lottery {

    public Lottery() {
        java.util.Random iRandom = new java.util.Random();
        int num[] = new int[6];
        java.util.Arrays.sort(num);

        for(int i =0 ; i < num.length; i++) {
            java.util.Arrays.sort(num);
            num[i] = iRandom.nextInt(49)+1;
            System.out.println(num[i]);
        }
    }

    public static void main(String[] args) {
        Lottery lott = new Lottery();
    }
}

在上面的代码中,我可以使用“For Loop”打印随机数,但我尝试按升序排序,但它不起作用.....

我的方式是对的?

每个人都可以帮助我吗?

谢谢!

最诚挚的问候!

4 个答案:

答案 0 :(得分:11)

Arrays.sort(num)调用 AFTER 后,您已完成生成随机数。

public Lottery(){
    java.util.Random iRandom = new java.util.Random();
    int num[] = new int[6];

    for(int i =0 ; i < num.length; i++)
        num[i] = iRandom.nextInt(49)+1;

    Arrays.sort(num);
}

答案 1 :(得分:3)

您在对数组进行排序后更改数组,这会破坏排序顺序。

答案 2 :(得分:3)

在对数组进行排序并将数据插入数组时,您正在对数组进行排序。

你应该做的是:

public Lottery() {
    java.util.Random iRandom = new java.util.Random();
    int num[] = new int[6];
    //java.util.Arrays.sort(num);

    for(int i =0 ; i < num.length; i++) {
        num[i] = iRandom.nextInt(49)+1;
    }

    java.util.Arrays.sort(num);

    for(int i : num) {
        System.out.println(i);
    }
}

答案 3 :(得分:0)

您可以做的是按顺序排序:

 java.util.Arrays.sort(array);

编辑:另外如评论中所述:获取您想要的随机数。然后在崇拜中排序。 (多次排序会使程序变慢)