–莫夭阏– 2022-05-01 11:59 采纳率: 66.7%
浏览 14
已结题

集合中解决重复问题却不知到错在哪里

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
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);//无任何输出
}
}

  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-05-01 12:27
    关注

    并不是没输出,而是你代码中存在死循环,你想一下,当i=1的时候,j=1,那么里边的while循环就是一个死循环,因为你比较的是同一个元素,必然相同,你再改也一样,所以就死循环了,逻辑上的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 5月1日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100