在if语句中格式化多个“或”条件的最佳方法(Java)
一个简单的问题,但是Google并没有提供太多帮助。
我有一个带很多条件的if语句(必须检查10或15个常量以查看是否存在任何常量。)
而不是这样写:
if (x == 12 || x == 16 || x == 19 || ...)
有没有办法格式化它
if x is [12, 16, 19]?
只是想知道是否有更简单的方法来编写此代码,对您的帮助表示赞赏。
:答案非常有帮助,但是一些人要求我添加更多细节,所以我会这样做以缓解他们的好奇心。我正在创建一个日期验证类,该类需要确保在只有30天的月份中天数不超过30天(我认为其中有4天),并且我正在编写if语句来检查如下内容:
if (day > 30 && (month == 4 || month == 6 || month == 9 || month == 11))
我只是想知道是否有一种更快的方法来编码类似的东西-下面的许多答案对您有帮助:)。
回答:
我经常使用这种模式。它非常紧凑:
// Define a constant in your class. Use a HashSet for performanceprivate static final Set<Integer> values = new HashSet<Integer>(Arrays.asList(12, 16, 19));
// In your method:
if (values.contains(x)) {
...
}
HashSet
此处使用A 可以提供良好的查找性能-甚至非常大的哈希集也能够contains()
极快地执行。
如果性能不重要,则可以将其要点编码为一行:
if (Arrays.asList(12, 16, 19).contains(x))
但要知道它ArrayList
每次执行都会创建一个新的。
以上是 在if语句中格式化多个“或”条件的最佳方法(Java) 的全部内容, 来源链接: utcz.com/qa/421922.html