接受整数数组作为参数并随机化其值的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);
}