我已经编写了 parking 场结构的代码一段时间,但我有点陷入困境。到目前为止,我有一个 ArrayList,用户可以将车辆属性添加到其中,还有一个带有“SpaceID”和之前的“Vehicle”的 parking 位的 ArrayList。
到目前为止,我可以让用户添加车辆,并将车辆添加到 parking 位,但是我已经创建了一个索引为 0: 且元素(车辆)为空的临时 parking 位。
从这里开始,我想检查 parking 位 ArrayList 是否为“null”,然后如果找到,则用车辆替换 null,但是,我不知道如何实现这一点。我将附上我正在使用的当前代码,或者至少是它的最小版本。
我已经尝试过使用 Contains(null) 方法,但我似乎无法使其正常工作,我不确定它是否可以工作,但从那时起我已将其从我的代码中删除。
首先,我有创建车辆并将其存储在数组中的功能。
```
public void carInfo(Vehicle tempVehicle, parkingSpace vehicle) {
array = new MCP();
System.out.println("Please enter number plate: ");
input = new Scanner(System.in);
String plate = input.nextLine();
System.out.println("Please enter car make: ");
input = new Scanner(System.in);
String make = input.nextLine();
System.out.println("How would you best describe your Vehicle? ");
System.out.println("(Car, Small Van, Tall Van, Long Van, Coach,
Motorbike)");
type = new Scanner(System.in);
String type1 = input.nextLine();
if (type1.equalsIgnoreCase(vehicleType.CAR.toString())) {
tempVehicle.setPlate(plate);
tempVehicle.setCarMake(make);
tempVehicle.setVehicle(vehicleType.CAR);
inv.createInvoice();
tempVehicle.setInvoiceNumber(inv.invoiceNumber);
array.addStandard(tempVehicle);
array.parkVehicle(vehicle);
System.out.println(tempVehicle.toString());
System.out.println(vehicle.toString());
```
我也有我的数组,它们在另一个类中。
```
public MCP(){
vehicles = new ArrayList<>();
parkingSpaces = new ArrayList<>();
parkingSpaces.add(0, null);
parkingSpaces.add(1, null);
}
public void addStandard(Vehicle tempVehicle) {
vehicles.add(tempVehicle);
}
public void parkVehicle(parkingSpace vehicle) {
parkingSpaces.add(vehicle);
}
```
这是我尝试做的方式,但我无法弄清楚这种方式,所以我停下来,我也对任何其他方式持开放态度。
//公共(public)无效 checkIfEmpty(parkingSpace 车辆){
//if(parkingSpaces.contains(null)){
//parkingSpaces.add(车辆);
//}
// 别的{
//System.out.println("该区域没有空间");
//}
//}
我也在寻找一种更好的方法来填充 parking 位,但这不是主要问题,只是为了以防万一有人有任何想法
提前致谢。
最佳答案
由于您使用的是数组列表,因此当从中删除项目时,其中的两个元素之间不会有空元素。当您删除一个元素时,该元素会发生移动。因此,在这段代码的情况下,它检查数组列表中的元素数量是否小于最大汽车数量
int maxSize = 10; //suppose that the maximum number of cars is 10
public void checkIfEmpty(parkingSpace vehicle){
if(parkingSpaces.size() < maxSize){
parkingSpaces.add(vehicle);
}
else{
System.out.println("There is no room in this Zone");
}
}
关于java - 如何在此 ArrayList 中搜索 null,然后将其替换为另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55786165/