用JAVA写一个停车场 检测出车顺序是否正确
时间: 2024-05-08 16:15:19 浏览: 13
这是一个停车场的Java代码示例(仅用于演示,可能存在不足之处):
```
public class ParkingLot {
private ArrayList<Car> parkedCars;
private int capacity;
public ParkingLot(int capacity) {
this.capacity = capacity;
this.parkedCars = new ArrayList<Car>();
}
public boolean parkCar(Car car) {
if (this.parkedCars.size() == this.capacity) {
return false; // 停车场已满
}
this.parkedCars.add(car);
return true;
}
public Car unparkCar(int index) {
if (index < 0 || index >= this.parkedCars.size()) {
return null; // 无效的车位号
}
Car car = this.parkedCars.remove(index);
return car;
}
public boolean checkOrder() {
for (int i = 0; i < this.parkedCars.size() - 1; i++) {
if (this.parkedCars.get(i).getArrivalTime() > this.parkedCars.get(i+1).getArrivalTime()) {
return false; // 顺序不正确
}
}
return true; // 顺序正确
}
}
public class Car {
private int id;
private long arrivalTime;
public Car(int id) {
this.id = id;
this.arrivalTime = System.currentTimeMillis();
}
public int getId() {
return this.id;
}
public long getArrivalTime() {
return this.arrivalTime;
}
}
public class Main {
public static void main(String[] args) {
ParkingLot parkingLot = new ParkingLot(10);
for (int i = 1; i <= 10; i++) {
Car car = new Car(i);
parkingLot.parkCar(car);
}
parkingLot.unparkCar(2); // 释放车位
parkingLot.unparkCar(5); // 释放车位
if (parkingLot.checkOrder()) {
System.out.println("车辆顺序正确");
} else {
System.out.println("车辆顺序不正确");
}
}
}
```
在这个示例中,我们定义了一个`ParkingLot`类来表示停车场,它包含了一个`ArrayList`用于存储当前停放的车辆。`Car`类表示车辆,其中包括车辆的ID和到达停车场的时间。`Main`类是程序入口,我们在其中创建了一个`ParkingLot`对象,并停放了10辆车。然后释放了第3和第6辆车,最后检测了车辆的顺序是否正确。
`ParkingLot`类中的`parkCar`方法用于停车,它首先检查停车场是否已满,如果已满则返回`false`,否则将车辆添加到`parkedCars`列表中,并返回`true`。`unparkCar`方法用于取车,它接收一个车位号作为参数,如果该车位无效则返回`null`,否则从`parkedCars`列表中移除该车辆,并返回该车辆对象。`checkOrder`方法用于检查车辆的顺序是否正确,它遍历`parkedCars`列表中的所有车辆,如果发现任意两辆车的到达时间顺序不正确,则返回`false`,否则返回`true`。
在`Main`类中,我们创建了一个`ParkingLot`对象,并停放了10辆车。然后释放了第3和第6辆车,最后调用`checkOrder`方法检测车辆的顺序是否正确,并输出检测结果。