我有兩組objets,我想要獲取這兩個集合的交集。在集合中的對象是這樣的scala如何交集和匹配集合中的元素
@BeanInfo
class User {
@JsonProperty
@BeanProperty
var name:String = ""
@JsonProperty
@BeanProperty
var id:Long = 0
override def toString = name
override def equals(other: Any)= other match {
case other:User => other.id == this.id
case _ => false
}
}
在另一類我得到用戶的組和希望看到的交集。
val myFriends = friendService.getFriends("me")
val friendsFriends = friendService.getFriends("otheruser")
println(myFriends & friendsFriends)
但是如果我手動遍歷集合使用的foreach上面的代碼無法正常工作,並打印
Set()
我得到期望的結果
var matchedFriends:scala.collection.mutable.Set[User] = new HashSet[User]()
myFriends.foreach(myFriend => {
friendsFriends.foreach(myFriend => {
if(myFriend == myFriend){
matchedFriends.add(myFriend)
}
})
})
println(matchedFriends)
上面的代碼打印
Set(Matt, Cass, Joe, Erin)
Th在作品就好
val set1 = Set(1, 2, 3, 4)
val set2 = Set(4,5,6,7,1)
println(set1 & set2)
上面打印
Set(1, 4)
不要設定操作& & - 等等。只有在原始對象的工作? 我需要爲我的用戶對象做些額外的工作才能使用它?
'myFriend == myFriend'真的嗎? – agilesteel