我想创建一个小型停车系统,有四个类:一个用于用户输入,一个用 ArrayList (CarPark) 维护停车位列表,一个 ParkingSlot 类和一个汽车类。用户菜单中的选项之一是将汽车停放在现有的停车位中。为此,用户需要输入汽车的车牌号码。接下来,汽车应该停在停车场,并且 ArrayList 应该更新。首先,用户创建 ParkingSlot 作为 CarPark 中 ArrayList 的对象。该对象中包含类 Car,该类为“null”。用户界面菜单的选项允许用户将汽车停放在创建的槽位中。在这里,我很难以将汽车分配到特定插槽的方式对系统进行编程。分配后,当调用 CarPark 类中的方法 listSlots 时,汽车应该出现在插槽 Id 旁边。在 arrayList 中创建点的应用程序类的一部分:if (choice == 1) {System.out.println("Enter an ID of the type \"D##\""); input = scanner.nextLine(); if(input.matches("[D][0-9]{2}")) { if (carParkObj.hasParkingSlot(input) == false) { carParkObj.addParkingSlot(input, "Visitor"); } else { System.out.println("Invalid Input. This slotID alreasy exists!"); } break; } else { System.out.println("Invalid Input"); } break;}应用程序类中进行汽车注册的部分:else if (choice == 4) { System.out.println("Enter the car registration number of the type \"A1234\" "); input = scanner.nextLine(); if(input.matches("[A-Z][0-9]{4}")) { String newRegistrationNumber = input; System.out.println("Enter owner's name"); String newOwner = scanner.nextLine(); System.out.println("Is the owner Visitor or Staff member? For enter \"V\" for Visitor or \"S\" for staff member."); input = scanner.nextLine(); if (input.equals("V")) { boolean staffMember = false; Car car = new Car(newRegistrationNumber, newOwner, staffMember); //not sure that method do I need here to add the car to the Slot with the particular ID else { System.out.println("Invalid Input"); } }else { System.out.println("Invalid Input"); break;}
1 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
将汽车分配给特定槽位的快速而肮脏的方法是迭代槽位的 ArrayList,直到找到具有所需 ID 的槽位,这与删除停车位的方法相同。
一种更简洁的方法是将停车位存储为 a Map<String, ParkingSlot>
,其中键是停车位的 ID,值是停车位本身。然后您可以通过其 ID 简单地访问该插槽。
由于 Map 的键是一组,因此这也为您提供了一种快速检查重复 ID 的方法。
添加回答
举报
0/150
提交
取消