Как использовать Groovy Set для уникальных элементов? - PullRequest
2 голосов
/ 29 апреля 2010

Как бы просто это ни было, я до сих пор не могу понять, в чем я не прав:

class A {
    boolean equals(o) { true }
}
def s = [new A(), new A()] as Set
assert s.size() == 1 // Assertion failed: actually gives 2

Какой метод мне следует переопределить, чтобы получить уникальность?

1 Ответ

7 голосов
/ 30 апреля 2010

hashCode , как с Java

class A {
    boolean equals(o) { true }
    int hashCode() { 1 }
}
def s = [new A(), new A()] as Set
assert s.size() == 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...