我有一个包含许多条件的 if 语句(必须检查 10 或 15 个常量以查看它们是否存在。)
而不是写这样的东西:
if (x == 12 || x == 16 || x == 19 || ...)
有没有办法像这样格式化
if x is [12, 16, 19]?
只是想知道是否有更简单的编码方法,感谢您的帮助。
答案非常有帮助,但一些人要求我添加更多细节,所以我会这样做来满足他们的好奇心。我正在制作一个日期验证类,需要确保在只有 30 天的月份(我认为有 4 天)中的天数不大于 30,并且我正在编写一个 if 语句来检查这样的事情:
if (day > 30 && (month == 4 || month == 6 || month == 9 || month == 11))
我只是想知道是否有更快的方法来编写这样的代码——下面的许多答案都有帮助。
原文由 Anthony 发布,翻译遵循 CC BY-SA 4.0 许可协议
我经常使用这种模式。它非常紧凑:
A
HashSet
在这里用于提供良好的查找性能 - 即使是非常大的哈希集也能够执行contains()
非常快。如果性能不重要,您可以将其要点编码为一行:
但知道它会在每次执行时创建一个新的
ArrayList
。