2
通常,我會在列表上調用不同的清除重複項或將其變爲Set
。現在我有一個List[MyObject]
。 MyObject
是一個案例類,見下圖:如何根據CaseObj的屬性使List [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
。我是否需要將案例類轉換爲普通類並重寫equals?我是否需要一個自己的比較器,或者我可以使用一些Scala API方法來存檔相同的?
這些是兩個問題,應該這樣分開。 #1對我來說不清楚。 #2是http://stackoverflow.com/questions/3912753/scala-remove-duplicates-in-list-of-objects –
的重複問題1意味着:如何查看有多少MyObject對象在s2中有相同的內容no重要的是s1或s3中的內容。我只在乎這裏的S2。問題2意味着:我只想用s2保留單個MyObject。我不在乎哪一個。結果列表應根據案例類別屬性s2區分。所以,上面的myList在轉換後只有2個條目。 – user3350744