2014-12-04 56 views
1

目前我有这个套装集合:斯卡拉 - 转换设置[(X,Y])设置[Y]

Set((S00002,3), (S00001,2), (S00001,1), (S00003,4)) 

是否有将其转换为这样的事情没有什么好的办法:

Set(3,2,1,4) 

下面是我当前的代码产生高于设定[(字符串,龙)]:

data.expense_items.groupBy(i => (i.supplier_id, i.po_id)).mapValues(_.map (j => j.price)).keys 

回答

5

使用map方法:

val s = Set(("S00002",3), ("S00001",2), ("S00001",1), ("S00003",4)) 
s.map(_._2) // Set(3, 2, 1, 4) 
+0

骗我,我想'_._ 2.mkString()',忘了'第一map'它然后使用'.mkString'。顺便说一句,我想排序结果,但我不能使用'sortBy',因为它给了我值这个错误'sortBy不是Iterable [Long]的成员'。 – 2014-12-04 07:53:28

+0

@ user26409021将结果转换为任何'seq'并对其进行排序。 – 2014-12-04 08:15:49

1

若干其他方法,

mySet.collect { case (_,v) => v } 

mySet.unzip._2 

for ((_,v) <- mySet) yield v 

mySet.toMap.values.toSet