循环访问数组 - java

2022-09-01 08:08:43

我想知道是否最好有一个方法,并将传递给该方法,或者每次我想检查数字是否在.Arrayarray

例如:

public static boolean inArray(int[] array, int check) {

    for (int i = 0; i < array.length; i++) {
        if (array[i] == check) 
            return true;
    }

    return false;
}

提前感谢您的帮助!


答案 1

由于至少Java 1.5.0(Java 5),代码可以稍微清理一下。s 和任何实现(例如 s)的东西都可以这样循环:ArrayIteratorCollection

public static boolean inArray(int[] array, int check) {
   for (int o : array){
      if (o == check) {
         return true;
      }
   }
   return false;
}

在Java 8中,你还可以做这样的事情:

// import java.util.stream.IntStream;

public static boolean inArray(int[] array, int check) {
   return IntStream.of(array).anyMatch(val -> val == check);
}

尽管为此转换为流可能有些过分。


答案 2

您一定要将此逻辑封装到一个方法中。

多次重复相同的代码没有任何好处。

此外,如果将逻辑放在方法中并且它发生了变化,则只需在一个位置修改代码。

是否要使用第三方库是一个完全不同的决定。