【发布时间】:2017-07-30 19:01:14
【问题描述】:
我的代码
Random random = new Random();
int economySeat = random.nextInt(23 - 12 + 1) + 12;
seatNumber = economySeat;
if (seatManager.getSeats()[seatNumber] == false) {
seatManager.getSeats()[seatNumber] = true;
}
从所示范围内的布尔数组中随机选择经济舱座位。如何仅在运行程序时选择空位?目前,例如,当只剩下一个座位时,我必须多次按下选择按钮,例如
【问题讨论】:
-
你是什么意思,你必须点击一个选择按钮?我的意思是,您的代码设计为运行一次。因此,如果您调用该代码,它要么找到座位,要么找不到。
-
首先检查数组中是否存在
false值。然后,您将您发布的整个代码放在一个while中,只退出if (seatManager.getSeats()[seatNumber] == false)。也可以考虑synchronize上面的代码。 -
它正确地找到了一个座位,但目前在我的网络应用程序中它一直在寻找重复项,即。已经预订的座位。我有什么作品,但有点基本。
-
将空缺席位放入列表中,在0到空缺席位列表大小之间选择一个随机数,将此席位的空缺字段设置为false,将其从列表中删除。或者只是计算空座位的数量,在 0 和这个数字之间选择一个数字 r,并将第 r 个 vavant 设置为 true。
-
@j.e.gr 这是非常低效的。同步是无关紧要的。