Обычно я вызываю отдельный список для удаления дубликатов или превращения его в Set
. Теперь у меня есть List[MyObject]
. MyObject
случай класс, смотрите ниже:Как сделать список [CaseObj] отличным от свойства CaseObj?
case class MyObject(s1: String, s2:String, s3:String)
Допустим, мы имеем следующие случаи:
val myObj1 = MyObject("", "gmail,com", "some text")
val myObj2 = MyObject("", "gmail,com", "")
val myObj3 = MyObject("some text", "gmail.com", "")
val myObj4 = MyObject("some text", "gmail.com", "some text")
val myObj5 = MyObject("", "ymail.com", "")
val myObj6 = MyObject("", "ymail.com", "some text")
val myList = List(myObj1, myObj2, myObj3, myObj4, myObj5, myObj6)
два вопроса:
- Как я могу подсчитать, сколько объектов затронуты? Дубликаты основаны на содержании
s2
? - Как я могу сделать Список отдельным на основе
s2
? Я бы рассмотрел два объекта корпуса одинаково, когдаs2 == s2
. Нужно ли превращать класс case в нормальный класс и переопределять равные? Нужен ли мне собственный компаратор для этого или я могу использовать какой-либо метод Scala API для его архивации?
Это два вопроса, и их следует разделить таким образом. # 1 мне непонятно. # 2 является дубликатом http://stackoverflow.com/questions/3912753/scala-remove-duplicates-in-list-of-objects –
Вопрос 1 означает: как узнать, сколько объектов MyObject имеют одинаковый контент в s2 no вопрос, что находится в s1 или s3. Я просто обожаю s2 здесь. Вопрос 2 означает: я просто хочу сохранить единственный объект MyObject с s2. Меня не волнует, какой из них. Полученный список должен быть разным, основываясь на свойстве класса case s2. Итак, myList сверху будет иметь только 2 записи после преобразования. – user3350744