我有两组<div class="col-md-4">
<select class="form-control" ng-model="newLink.groupNo"
name="groupNo" id="groupNo"
ng-options="t.value as t.text for t in metaData.spGroups"></select>
</div>
对:
(k,v)
如何通过键找到这两组的差异,得到:
val x = Set((1,2), (2,10), (3,5), (7,15))
val y = Set((1,200), (3,500))
任何快速简单的解决方案?
答案 0 :(得分:3)
val ym = y.toMap
x.toMap.filterKeys(k => !(ym contains k)).toSet
设置没有键,地图做。所以你转换成地图。然后,您无法在地图上创建差异,但您可以过滤密钥以排除您不想要的密钥。然后你就完成了转换回Set
。 (这不是最有效的方法,但它并不坏,写起来也很容易。)
答案 1 :(得分:2)
让val keys = y.map(_._1).toSet
成为x
中不能作为键出现的键组(对中的第一个元素);从而
for ( p <- x if !keys(p._1) ) yield p
以及
x.collect { case p@(a,b) if !keys(a) => p }
和
x.filter ( p => !keys(p._1) )
x.filterNot ( p => keys(p._1) )
答案 2 :(得分:0)
你可以尝试这个:
x filter{ m => y map{_._1} contains m._1} toSet