Java程序,它接受Integer数组作为参数并随机化其值

时间:2013-12-09 21:21:28

标签: java arrays

我尝试了一个程序,我在其中获取整数数组并随机化值。但我无法理解为什么,但我得到一个显示特殊字符和所有的疯狂输出。我的问题出了什么问题。这是我的代码:

import java.util.Random;

public class Q2d {

    public static void shuffle(int[] arr) {

        int n = arr.length;
        Random random = new Random();
        random.nextInt();
        for (int i = 0; i < n; i++) {
            int change = i + random.nextInt(n - i);
            int temp = arr[i];
            arr[i] = arr[change];
            arr[change] = temp;
        }
    }

    public static void main(String args[]) {

        int[] arr = { 1, 2, 3, 4, 5, 6 };
        shuffle(arr);
        System.out.println(arr);

    }
}

2 个答案:

答案 0 :(得分:2)

您正在尝试打印数组对象。数组也是对象,但它们不会覆盖Object's toString() method,它负责“疯狂输出”。

使用Arrays.toString()

System.out.println(Arrays.toString(arr));

答案 1 :(得分:0)

我很确定你在20分钟之前问过这个问题而不是

System.out.println(arr);

你有

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

这是正确的......