我正在创建一个商业航空公司的飞行计划,我还在学习如何使用Java。所以,我想知道是否有任何方法可以检查数组是否有足够的连续位置将值放在数组中的那些位置? 例如,我有一个名为seat的字符串数组,此数组中的每个位置对应于航班上的可用座位。最初这些座位都是空的。
String[] seats = new String[8];
从长远来看,这个程序将在这个数组中插入值,我希望我的程序能够检查航班(阵列)中是否有任何空座位(位置)来指定乘客座位。我勾勒出来检查一下。
for(int i=0; i< seats.length-1;i++) {
if(seats[i] != null) {
do something;
} else {
system.out.println("No seats available");
(how do I not assign seats or accept more values to my array?)
}
}
但建议使用客观的方法,我得到了这个
private static int MAX_SEATS = 8;
private String[] seats = new String[MAX_SEATS];
public boolean addPassenger(String passengerName) {
for (int i = 0; i < seats.length; i++) {
if (seats[i] == null) {
seats[i] = passengerName;
return true;
}
}
return false;
}
如果程序在检查后发现空座位,则应再次检查是否有空座位。 (例如,如果我们想让3名乘客坐在一起,程序应该检查是否有空座位3,然后将它们安置在那里)。如果程序在阵列中找到3个连续位置,它应该随机将乘客分配到3个位置。否则它应该随机尝试另一个座位,重复直到成功。
现在,我的座位阵列最多可以占用8个值,因此可能的3个位置可能是(1,2,3 or 2,3,4 or 3,4,5 or 4,5,6 or 5,6,7)
。如果程序没有找到连续的位置来安置这3个人,那么它应该随机地将它们放在不同的位置。(随机取座号码,直到找到空座位)
此代码只是将乘客添加到座位数组中。
//accepting more values to the seats array
public boolean addPassengers(String... passengerNames) {
boolean everyoneAdded = true;
for (String passengerName : passengerNames) {
everyoneAdded = everyoneAdded && addPassenger(passengerName);
}
return everyoneAdded;
}
如何在阵列中检查连续位置以便随机添加乘客组?任何更正/贡献都会有所帮助。