package TM_sl_12;
import java.util.*;
public class Test5 {
public static void main(String[] args) {
Random r = new Random();
List<Integer> dianshu = new ArrayList<>();
dianshu.add(r.nextInt(6) + 1);//增加的数的范围是1-6
dianshu.add(r.nextInt(6) + 1);
dianshu.add(r.nextInt(6) + 1);
dianshu.add(r.nextInt(6) + 1);
System.out.println(dianshu);
for (int i = 0; i < dianshu.size(); i++) {//循环来判断后面的数是否与前面的数相同
for (int j = 1; j < dianshu.size(); j++) {
while (dianshu.get(j) == dianshu.get(i)) {
dianshu.set(j, r.nextInt(6) + 1);//我想要集合里的数避免重复,但用这个代码却输不出任何数,我不知道错哪里
}
}
}
System.out.println(dianshu);//无任何输出
}
}
并不是没输出,而是你代码中存在死循环,你想一下,当i=1的时候,j=1,那么里边的while循环就是一个死循环,因为你比较的是同一个元素,必然相同,你再改也一样,所以就死循环了,逻辑上的问题