Предположим, что у вас есть класс case SearchQualifier
с двумя полями, left
и right
. Он может быть добавлен к экземпляру некоторого класса SearchQuery
для определения поиска (например, SearchQualifier("date", "January 1, 2000")
).Коллекция экземпляров класса case, сохраняющих уникальность одного поля
case class SearchQualifier(left: String, right: String)
Теперь скажите, что у вас была коллекция SearchQualifiers
. Если вы добавите новый набор в коллекцию с тем же left
в качестве другого, вы намерены переопределить предыдущее значение. Например:
qualifiers = qualifiers + Qualifier("date", "January 1, 2000")
...
qualifiers = qualifiers + Qualifier("date", "December 31, 1999") // override
Есть чистый способ сохранить уникальность классификаторов, основанный на left
?
Мой текущий подход использует Map[String, Qualifier]
где ключ карта является left
, но он чувствует, как взломать:
map = map + (qual.left -> qual)
В идеале, я бы предпочел Set
-как поведение. Тем не менее, я не думаю, что было бы правильным переопределить equals
, чтобы проверить только left
, потому что SearchQualifier("date", "January 1, 2000")
и SearchQualifier("date", "December 31, 1999")
: не равно.