我有2個系列:a
是class C
的一個Scala對象序列。 b
是一串字符串。 C
有一個字符串字段,name
,可能會匹配b
中的一個項目。我想要的是循環通過a
,並找到所有c.name
與b
中的一個項目匹配。我如何在Scala中做到這一點?Scala遍歷2個集合並查找匹配結果
1
A
回答
4
迭代遍歷a和b會變得昂貴,因爲一個循環嵌套在另一個循環內會產生O(n^2)時間。如果b足夠大,則可能需要先將其設置爲Set,然後將其設置爲O(n)。
val bSet = b.toSet;
a.filter(c => b.contains(c.name))
我看這是「應用下面的過濾器的結果:C中的每個項目,包括它在結果當且僅當C的名字是在B」。
1
下面是與yield相當的循環。
for(c <- a if b.contains(c.name)) yield c.name
相關問題
- 1. 遍歷兩個數組並比較結果以顯示不匹配的結果
- 2. 遍歷結果集bs4
- 3. 遍歷equal_range結果集
- 4. mysqli的遍歷結果集
- 5. 遍歷結果集.Net
- 6. 結果集不能遍歷
- 7. 如何遍歷2個對象數組,並通過匹配id進行合併
- 8. 遍歷並比較2個數組列表並找到匹配項
- 9. 密碼匹配查詢合併結果集
- 10. 遍歷集合
- 11. PostgreSQL - 遍歷查詢結果
- 12. 執行SQL查詢並循環遍歷結果集在rails中
- 13. 遍歷DOM對象數組並找到第一個匹配
- 14. 遍歷jQuery的2個陣列,並結合
- 15. 遍歷對象找到匹配
- 16. 功能遍歷列表,合併結果到一個數據框
- 17. 遍歷Backbone集合
- 18. JRuby遍歷集合
- 19. Rivets.js遍歷集合
- 20. 遍歷列表並返回匹配鍵
- 21. SQL查找匹配 - 合併查詢
- 22. LINQ遍歷集合和增量追加到匹配值
- 23. 如何遍歷結果集並在結果集中返回每行N行
- 24. 循環遍歷結果並聚合並吐出php
- 25. PHP:循環遍歷結果集
- 26. 循環遍歷結果集MongoDB 3
- 27. 使用迭代器遍歷結果集?
- 28. Scala:如何遍歷流/迭代器收集結果到幾個不同的集合
- 29. PHP比較兩個數組,並有三個結果集,匹配和不匹配的結果集
- 30. Scala:查找匹配並在集合中返回匹配相關值的通用方法
你我的朋友是搖滾明星!謝謝, – Bob
如果b足夠大,您可能需要先將其設置爲Set,例如: val bSet = b.toSet; a.filter(c => b.contains(c.name)) –
感謝您的建議,亞歷克斯,但爲什麼使它成爲第一個定義足夠大。 – Bob