Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接受整数数组作为参数并随机化其值的Java程序_Java_Arrays - Fatal编程技术网

接受整数数组作为参数并随机化其值的Java程序

接受整数数组作为参数并随机化其值的Java程序,java,arrays,Java,Arrays,我尝试了一个程序,在这个程序中,我获取一个整数数组,并对其中的值进行随机化。但我不明白为什么,但我得到了一个疯狂的输出显示特殊字符和所有。我的问题怎么了。这是我的密码: import java.util.Random; public class Q2d { public static void shuffle(int[] arr) { int n = arr.length; Random random = new Random();

我尝试了一个程序,在这个程序中,我获取一个整数数组,并对其中的值进行随机化。但我不明白为什么,但我得到了一个疯狂的输出显示特殊字符和所有。我的问题怎么了。这是我的密码:

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

    }
}
import java.util.Random;
公开课Q2d{
公共静态无效洗牌(int[]arr){
int n=阵列长度;
随机=新随机();
random.nextInt();
对于(int i=0;i
您正在尝试打印数组对象。数组也是对象,但它们不重写,这是“疯狂输出”的原因

使用:


我很确定你在20分钟前问了这个问题,并在里面而不是

System.out.println(arr);
你有

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

这是正确的…

几乎可以肯定是这样的,但是为了以后的注意,您可能应该包括一个“疯狂输出”的示例…我得到了答案,但只是在想是否有更好的方法。我认为这可能是最直接的方法,但Targetman的答案也很好。使用
for
循环意味着您必须关注数组的实现细节,尤其是数组中的元素类型。使用
Array.toString()
,您永远不必担心这一点,如果由于设计更改等原因而必须更改数组类型,这一点非常方便。
for(int i:arr){
    System.out.println(i);
}