我有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