.equals
有办法做到这一点吗? .compareTo
? <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css">
<script src="oi/dist/libs/jquery.js"></script>
<script src="oi/dist/jstree.min.js"></script>
...
或者我是否需要通过执行每个变量来做到这一点?对于循环?
答案 0 :(得分:2)
您可以制作辅助方法:
static boolean anyMatch(int find, int... in) {
for (int n : in)
if (n == find)
return true;
return false;
}
// ...
if (anyMatch(1, firstDigit, secondDigit, ...))
或者您可以使用流:
if (IntStream.of(firstDigit, secondDigit, ...).anyMatch(n -> n == 1))
或者您可以使用List.contains()
:
if (Arrays.asList(firstDigit, secondDigit, ...).contains(1))
但最简单,最有效的选择是你要避免的选择:
if ((firstDigit == 1 || secondDigit == 1 || ...)
需要考虑的另一点是这些是否应该是不同的变量,而不是数组。
答案 1 :(得分:1)
您的语法不合法,并且没有简短的表单或。
if (firstDigit == 1 || secondDigit == 1 || thirdDigit == 1 ||
fourthDigit == 1 || fifthDigit == 1) {
// ...
}
你也可以使用IntStream
(在Java 8+中),如
if (IntStream.of(firstDigit, secondDigit, thirdDigit, fourthDigit, fifthDigit)
.anyMatch(x -> x == 1)) {
// ...
}
请注意,第二种方法可能比第一种方法慢。