如何比较不同的整数与另一个整数?

时间:2017-01-26 21:20:36

标签: java

.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> ... 或者我是否需要通过执行每个变量来做到这一点?对于循环?

2 个答案:

答案 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)) {
    // ...
}

请注意,第二种方法可能比第一种方法慢。