如何最小化长&&声明 - Java

时间:2017-12-06 10:53:01

标签: java arrays

我想检查数组squareData[]中的所有项目是否为5。

我可以这样做:

if(squareData[0] == 5 && squareData[1] == 5 && ...){...}

但似乎效率很低。

有没有办法将其最小化为某种for循环?

请注意squareData[]的尺寸为9件

谢谢!

6 个答案:

答案 0 :(得分:7)

假设您输入的是int[],您可以使用Stream s:

if (Arrays.stream(squareData).allMatch(i -> i==5)) {

}

如果数组中的所有元素都满足条件i==5,则返回true。

答案 1 :(得分:1)

转换为流并使用allMatch方法:

java.util.stream.Stream.of(squareData).allMatch(v -> v == 5)

答案 2 :(得分:1)

欢迎来到

无论数组大小如何,最基本的方法是

boolean allEqual = true;

for (long l : squareData) {
    if (l != 5) {
        allEqual = false;
        break;
    }
}

一旦深入了解该语言,您将找到新方法。

答案 3 :(得分:0)

private boolean haveAllItemsCorrectValue(int[] array) {
    for (int value : array) {
        if (value != 5) {
            return false;
        }
    }

    return true;
}

然后

if(haveAllItemsCorrectValue(squareData){...}

答案 4 :(得分:0)

我猜你正在寻找类似的东西:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>

答案 5 :(得分:0)

boolean allFive = true;
for ( int i = 0; i < squareData.length; ++i ) {
  if ( 5 != squareData[i] ) {
    allFive = false;
    break;
  }
}
System.out.println(
  allFive ? "All entries are five." : "At least one entry is not five."
);