我有一个具有Vehicle属性的Arraylist,我需要将它们存储在“停车场插槽”中,因此我决定使用HashMap来存储具有车辆注册信息的车辆插槽,例如“ 1 = VEHICLE”。
在我的代码中,我有这样的想法,以便在从用户输入中获取所需的信息后,它添加一个Integer和一个带有put语句的Vehicle,它可用于第一个输入,但之后将其替换掉,我该怎么办关于循环put()或进行循环以向地图中添加内容?
(我还计划将我的HashMap创建和填充功能改为我调用的函数,在我弄清这一点或意识到不可能之前,这只是临时性的事情。)
public void carInfo(Vehicle tempVehicle, parkingSpace vehicle) {
HashMap<Integer, Vehicle> hash_map = new HashMap<Integer, 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);
hash_map.put(test++, tempVehicle);
System.out.println(hash_map.toString());
我希望添加很多输入并得到类似的东西:
1 = Vehicle
2 = Vehicle
相反,我只是得到
1 = Vehicle
然后它将替换第一辆车,然后放弃
2 = Vehicle
我已经研究并意识到这是因为我只有1个看跌期权,所以它只是替换了当前映射的那个东西,我只是不确定如何循环以解决此问题。
答案 0 :(得分:0)
每次调用方法carInfo时都在创建一个新的HashMap,因此HashMap始终只有一个条目,您可以通过将HashMap作为类的局部变量来解决此问题。