Распечатайте ключи и значения из словаря словаря один за другим по нажатию кнопки в swift

== сравнивает ссылки на объекты, он проверяет, указывают ли два операнда на один и тот же объект (не эквивалентные объекты, тот же объект).

Если вы хотите для сравнения строк (чтобы увидеть, содержат ли они одни и те же символы), вам нужно сравнить строки с помощью equals.

В вашем случае, если два экземпляра MyClass действительно считаются равными, если строки match, тогда:

public boolean equals(Object object2) {
    return object2 instanceof MyClass && a.equals(((MyClass)object2).a);
}

... но обычно, если вы определяете класс, в этом случае эквивалентности больше эквивалентности, чем эквивалентность одного поля (a в этом случае).


Боковое примечание: если вы переопределили equals, вам почти всегда нужно переопределить hashCode . Как сказано в equals JavaDoc :

Обратите внимание, что обычно необходимо переопределить метод hashCode всякий раз, когда этот метод переопределяется, чтобы поддерживать общий контракт для метода hashCode, который утверждает, что равные объекты должны иметь одинаковые хэш-коды.

blockquote>

-2
задан Mayur Karmur 26 March 2019 в 05:03
поделиться