gpt4 book ai didi

java - 在添加之前检查 ArrayList 中元素的 ID 是否已经存在

转载 作者:行者123 更新时间:2023-12-02 09:31:27 26 4
gpt4 key购买 nike

我是 Java 初学者,我想创建一个小型 parking 系统。该系统有四个类,一类用于用户输入,一类使用 ArrayList 维护 parking 场中的槽位列表,一类为 ParkingSlot,一类为 Car。

目前,我正在努力找出如何将插槽 ID 的用户输入与 ArrayLis 中的现有插槽 ID 进行比较。目前,如果用户输入现有值,它只会覆盖它。

我在addParkingSLot方法中添加了条件“if (!slots.contains(newId))”,但似乎不起作用。

Application类中负责用户ID输入的部分:

choice = scanner.nextInt();
scanner.nextLine();
if (choice == 1) {
System.out.println("Enter an ID of the type \"D##\"");
input = scanner.nextLine();
if(input.matches("[D][0-9][0-9]")) {
System.out.println("Nice");
carParkObj.addParkingSlot(input, "Visitor", false);
}
else {
System.out.println("Invalid Input");
}
break;

parking 场等级:

public class CarPark {

private ArrayList<ParkingSlot> slots;

public CarPark() {
slots = new ArrayList<ParkingSlot>();

}
/**
* storing Parking Slot
*/

public void addParkingSlot(String newId, String newType, boolean newOccupied)
{
ParkingSlot slotObj = new ParkingSlot(newId, newType, newOccupied);
if (!slots.contains(newId)) {
slots.add(slotObj);
}
else {
System.out.println("This slot ID already exists");
}
}

当用户输入现有值时,它会添加到 arrayList 中,而不是收到槽 ID 已存在的消息。

最佳答案

您的 ArrayList 具有类型 ParkingSlot,但您使用的 .contains 类型为 String。无论如何它都会返回false。您可以添加一个新方法来检查公园中是否有特定号码的汽车:

public boolean hasParkingSlot(String searching) {
for(ParkingSlot slot : slots) {
if(slot.getID().equals(searching)) return true;
}
return false;
}

我希望这有帮助:)

关于java - 在添加之前检查 ArrayList 中元素的 ID 是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com