Как мне зациклить / можно ли зациклить hashmap put ()? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть Arraylist со свойствами транспортного средства, и мне нужно было хранить их в «слоте парковки», поэтому я решил использовать HashMap для хранения слота транспортного средства с регистрацией транспортного средства, например «1 = VEHICLE».

В моем коде у меня это так, что после получения требуемой информации из пользовательского ввода он добавляет Integer и Vehicle с оператором put, он работает для первого ввода, но затем после этого просто заменяется, какя бы пошел зацикливать 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 голосов
/ 24 апреля 2019

Вы создаете новую HashMap каждый раз, когда вызываете метод carInfo, поэтому HashMap всегда имеет одну запись, вы можете решить эту проблему, используя эту HashMap как локальную переменную вашего класса.

...