2017-12-02 276 views
0

我在斯卡拉元组的列表的列表中找到独特的价值:斯卡拉:在元组

("BLUE", 2, 4) 
("RED", 2, 29) 
("GREEN", 29, 0) 
("RED", 18, 2) 

这个名单很长。我正在寻找一个高效的列表操作,它会给我一个唯一颜色列表(元组中的第一个字符串)。换句话说,我正在寻找:

List("RED", "BLUE", "GREEN") 

订单对我来说无关紧要。我知道这可以迭代完成,但我期待学习函数式编程,而且我不知道如何通过操作来完成此操作。

谢谢!

回答

1

如何:

tupleList.map(_._1).distinct

1

如果这是一个漫长List,就像你说的,那么你要遍历它只有一次。

tups.foldLeft(Set[String]())(_+_._1).toList 
+0

当列表很大时,这个解决方案显然比'map/distinct'好。 –