2017-12-02 390 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'好。 –