Usually I call distinct on List to remove duplicates or turn it into a Set
. Now I have a List[MyObject]
. MyObject
is a case class, see below:
case class MyObject(s1: String, s2:String, s3:String)
Let's say we have the following cases:
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)
Two Questions:
- How can I count how many objects are affected? Duplicates based on the content of
s2
? - How can I make the List distinct based on
s2
? I would consider two case objects the same whens2 == s2
. Do I need to turn the case class into a normal class and override equals? Do I need a my own Comparator for this or can I use some Scala API method to archive the same?