【发布时间】:2026-02-01 08:15:01
【问题描述】:
我目前创建了 CarPark 和 Floor 等类来表示停车场。我使用了 Floor 类的 ArrayList 来显示停车场的多个楼层。
我想在不同楼层有多个出入口,配备电梯从一层到另一层。
我应该如何处理这个问题?我希望能够在车辆同时进入和离开时向停车场添加和删除多辆车辆。
在这种情况下如何使用线程和锁?
==============结构============
public class CarPark{
private ArrayList<Floor> floorList;
private ArrayList<Vehicle> vehicleList;
}
实现的方法:
- getFloorList() : ArrayList
- getVehicleList(): ArrayList
- getMostSuitableFloorForVehicle(Vehicle): 楼层
-
addVehicle(Vehicle): 无效
-
getFreeSlots(): 双倍
-
deleteVehicle(String): 车辆
-
getVehiclePercentages(): HashMap
-
getOldestVehicle(): 车辆
-
getLatestVehicle(): 车辆
-
getVehicleById(String): 车辆
-
getVehicleByDayYear(String, String): ArrayList
public class Floor implements Comparable<Floor>{ private double maxCapacity; private double currentCapacity; private int currentNumberOfVehicles; private ArrayList<Vehicle> vehicleList; private ArrayList<VehicleTypes> preferredVehicleType; private ArrayList<VehicleTypes> possibleVehicleType;}
实现的方法:
- getCurrentNumberOfVehicles(): int
- getCurrentCapacity(): 双倍
- getVehicleList(): ArrayList
- getPreferredVehicleType(): ArrayList
- getPossibleVehicleType(): ArrayList
- getAvailableNumberOfSlots(): 双倍
- isParkingSlotsSufficient(Vehicle): 布尔值
- addVehicle(Vehicle 车辆): void
- getVehicleById(String): 车辆
- deleteVehicleByInstance(Vehicle): 车辆
- deleteVehicleByPlateId(String): 车辆
- toString(): 字符串
- compareTo(Floor): int
其余只是将添加到停车场的车辆类别。
【问题讨论】:
-
我添加了一个概述,代码很长
-
请注意,Stack Overflow 是一个 Q/A 平台,您可以在其中展示具体代码并描述您尝试过的内容以及实际结果与您的预期有何不同,或者提出其他具体问题。它不是一个让其他人免费为你完成整个工作或家庭作业的平台。
标签: java multithreading concurrency simulation