2016-11-27 90 views
0

我收到向量列表一些功能像斯卡拉:在不變的方式

(List(Vector(1), Vector(1, 2), Vector(1, 3), Vector(1, 2, 4), Vector(1, 5))) 

載體,以項目的唯一列表名單我想將其轉換成整數的不同值一樣

List(1,2,3,4,5) 
使用完全不變性的Scala中的

請建議什麼是實現它的有效方法。

回答

5

您可以使用List上的flattendistinct方法。

val list = List(Vector(1), 
       Vector(1, 2), 
       Vector(1, 3), 
       Vector(1, 2, 4), 
       Vector(1, 5)) 

val flattened = list.flatten // Gives List(1, 1, 2, 1, 3, 1, 2, 4, 1, 5) 

val distinct = flattened.distinct // Gives List(1, 2, 3, 4, 5) 
0

這是另一種解決方案。

val lst = (List(Vector(1), Vector(1, 2), Vector(1, 3), Vector(1, 2, 4), Vector(1, 5))) 

lst.flatten.toSet.toList 

List[Int] = List(5, 1, 2, 3, 4)