Добавление массивов в Hashmap < String, Object & gt ;?

В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.

Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.

Оператор == проверяет, являются ли две строки точно одним и тем же объектом.

Метод .equals() проверяет, имеют ли две строки одно и то же значение.

-2
задан Simon Osbon 17 January 2019 в 10:22
поделиться

1 ответ

Нет проблем с кодом. Но, поскольку карта параметров хранит объект как значение, вам может потребоваться приводить значение обратно к его типу каждый раз, когда вы получаете его с карты (каждый ключ хранит значение, тип которого отличается.).

        Map<String, Object> params = new HashMap<>();
        params.put("sl", new String[]{"AZN"});
        params.put("dType", "trade");
// year - the year minus 1900
// month - 0 to 11
        params.put("startDate", new Date(2018-1900, 11, 20));
        params.put("endDate", new Date(2018-1900, 11, 20));
        params.put("tZ", "Eur");
        params.put("ac", "equity");
        params.put("af", new Object[]{"=", "price", 6031} );

        for(Object obj:(Object[]) params.get("af")) {
            System.out.println(obj);
        }

        for(String obj:(String[]) params.get("sl")) {
            System.out.println(obj);
        }
0
ответ дан CodeBusker_JEP 17 January 2019 в 10:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: