如何循环/可以循环哈希映射put()?

时间:2019-04-22 16:49:58

标签: java loops input hashmap

我有一个具有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个看跌期权,所以它只是替换了当前映射的那个东西,我只是不确定如何循环以解决此问题。

1 个答案:

答案 0 :(得分:0)

每次调用方法carInfo时都在创建一个新的HashMap,因此HashMap始终只有一个条目,您可以通过将HashMap作为类的局部变量来解决此问题。