0
A
回答
1
你的问题没有指定你想要什么当列表不包含必要项目时发生。
如果列表中的所有项目符合您的条件下将返回true,否则为false:
val ints1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)
val ints2: List[Int] = List(10, 10, 10, 10)
ints1.forall(i => List(10, 20, 30).contains(i)) // false
ints2.forall(i => List(10, 20, 30).contains(i)) // true
下面将返回一个列表,只有那些符合标准的项目:
val ints1: List[Int] = List(10, 20, 30, 40, 50, 60, 70)
val ints2: List[Int] = List(10, 10, 10)
ints1.filter(i => List(10, 20, 30).contains(i)) // List(10, 20, 30)
ints2.filter(i => List(10, 20, 30).contains(i)) // List(10, 10, 10)
2
FORALL
您可以使用forall
含有能有效或合法元素集,并且希望在列表中看到的。
list.forall(Set(10, 20, 30).contains) //true means list only contains 10, 20, 30
是集功能
你不必使用contains
方法Set
延伸Int => Boolean
。您可以使用设置的功能等
list forall Set(10, 20, 30)
过滤
您可以使用过滤器来过滤掉不属于在给定列表中的元素。再次,您可以使用Set as Function作为Set extends Function。
list.filter(Set(10, 20, 30)).nonEmpty //true means list only contains 10, 20 and 30
收藏,如果你喜欢的模式匹配
收集需要的部分功能。如果你喜欢的模式匹配只使用collect
list.collect {
case 10 => 10
case 20 => 20
case 30 => 30
}.nonEmpty //true means list only contains 10, 20 and 30
斯卡拉REPL
scala> val list = List(10, 20, 30, 40, 50)
list: List[Int] = List(10, 20, 30, 40, 50)
scala> list forall Set(10, 20, 30)
res6: Boolean = false
+3
问题是要求如何验证列表_only_包含值'10','20'和'30'。为此,我们需要额外增加一个步骤,并写入'list.filterNot(Set(10,20,30).contains(_))。isEmpty'来验证不包含的元素列表因为'Set'是空的。 – Eric
0
如果你只是想确定所有在列表中的值是否为“合法”,使用FORALL:
def isLegal(i: Int): Boolean = ??? // e.g. is it 10, 20, or 30
val allLegal = list forall isLegal
如果你想减少你的清单,只剩下合法的价值,我们Ë过滤:
val onlyLegalValues = list filter isLegal
注意,一个Set[Int]
算作一个Int => Boolean
功能,因此您可以使用到位您isLegal
方法:
val isLegal = Set(10, 20, 30)
val allLegal = list forall isLegal
val onlyLegalValues = list filter isLegal
相关问题
- 1. Linq列表包含特定值
- 2. 仅包含()特定属性
- 3. 模式匹配 - 确保列表仅包含一个结构的值
- 4. 如何确保列表包含独特的元素?
- 5. 表包含特定的值或者不
- 6. 在其他表中列表中不包含特定值的行
- 7. 确定一个列表是否包含独特元素
- 8. 查找仅包含特定字符
- 9. Rally看板 - 仅包含特定标签
- 10. C#实体框架4.1 Lambda包含 - 仅选择特定的包含值
- 11. 确定包含特定字符的CTLine
- 12. php - 获取在特定列中包含特定值的csv行
- 13. 隐藏在特定列中包含特定值的行
- 14. Selenium IDE下拉列表框包含特定值Loop?
- 15. 爪哇 - 看看列表模块包含一个特定值
- 16. 如何检查嵌套列表是否包含特定值C#
- 17. 列表是否包含具有特定值的项目?
- 18. 如何搜索包含特定动态值的列表
- 19. 如何确定2维列表是否包含值?
- 20. 可能测试一个变量是否仅包含特定值?
- 21. 获取随机行(但仅当行包含特定值)
- 22. 确认输入值仅包含字母表的验证问题
- 23. 如何廉价确定列是否仅包含NULL记录?
- 24. 如何确保列中包含一行
- 25. 如何确定包含特定小数的行在sql列中
- 26. SQL LIMIT关键字:确保特定结果包含
- 27. 如何制作包含来自其他列表的特定值的列表?
- 28. Haskell:测试列表是否包含特定的“子列表”
- 29. Elisp列表包含值
- 30. 的LINQ包含值列表
如果您认为您的问题已解决,请考虑接受答案。如果不是的话,那么对那些帮助他们将答案提高到可接受水平的人发表评论。它帮助每个人。 – maasg
你想确保你只能添加某些项目到列表中?列表可能只包含特定项目,或者检查给定列表是否包含特定时间点的某些项目。 3种不同答案的选项。 – maasg