问题遇到的现象和发生背景 在循环中随机交换完数组元素后接着在循环内部输出,会经常出现重复值,而在这个循环外部输出数组元素则不会出现重复值是什么原因呢
问题相关代码,请勿粘贴截图
public class traverseDemo2 {
public static void main(String[] args) {
int[] gh ={22,33,35,13,88};
Random r = new Random();
for (int j = 0; j < gh.length; j++) {
int i = r.nextInt(gh.length);
int newgh = gh[i];
gh[i]=gh[j];
gh[j]=newgh;
System.out.println(gh[j]);
}
运行结果及报错内容
35
88
22
22
13
我的解答思路和尝试过的方法
public class traverseDemo2 {
public static void main(String[] args) {
int[] gh ={22,33,35,13,88};
Random r = new Random();
for (int j = 0; j < gh.length; j++) {
int i = r.nextInt(gh.length);
int newgh = gh[i];
gh[i]=gh[j];
gh[j]=newgh;
}
for (int i = 0; i < gh.length; i++) {
System.out.println(gh[i]+"\t");
}
}
}
运行结果为
35
13
33
88
22