В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.
Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.
Оператор
==
проверяет, являются ли две строки точно одним и тем же объектом.Метод
blockquote>.equals()
проверяет, имеют ли две строки одно и то же значение.
Нет проблем с кодом. Но, поскольку карта параметров хранит объект как значение, вам может потребоваться приводить значение обратно к его типу каждый раз, когда вы получаете его с карты (каждый ключ хранит значение, тип которого отличается.).
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);
}