Есть ли эффективный способ l oop через набор и сохранить значение, если есть несколько / один совпадений? - PullRequest
0 голосов
/ 07 января 2020

У меня есть Set of VehicleType, я ищу эффективный способ l oop через set и проверяю все значения, если есть одно или несколько совпадений, я хотел бы сохранить их все в массиве или списке? Есть ли эффективный / лучший способ добиться этого?

Вот мой код

private void invokeProcessorDispatcher(Set<VehicleType> vehicleTypes)
    {
        while(vehicleTypes != null){
            Set<VehicleType> results = new HashSet<>();

                for ( VehicleType vehicleName : vehicleTypes)
                {
                    if (vehicleName.equals("US")){
                        LOGGER.info(zMETHOD + "Vehicles provideds: " + vehicleName);

                    }else if (vehicleName.equals("VIP")){
                        LOGGER.info(zMETHOD + "Vehicles provided: " + vehicleName);

                    }else if (vehicleName.equals("Ins")){
                        LOGGER.info(zMETHOD + "Vehicles provided: " + vehicleName);

                    }else{
                        LOGGER.warn(String.format("Unknown vehicle type provided: [%s]",
                                        vehicleName));
                    }
                }
            }
    }

1 Ответ

0 голосов
/ 07 января 2020

Во-первых, ваш HashSet имеет тип VehicleType, и vehicleName.equals ("") будет работать, только если вы переопределите метод equals в классе VehicleType, что не рекомендуется.

И, во-вторых, если VehicleType содержит только vehicleName, тогда вы может напрямую использовать hashSet типа String.

например:

HashSet<String> vehicleTypes = new HashSet<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...