java怎么判断数据是否在数组中

在 Java 中,判断数据是否在数组中可使用以下方法:使用 for 循环遍历数组,查找与目标数据相等的数据对于有序数组,使用 Arrays.binarySearch() 方法使用 Stream 和 lambda 表达式匹配目标数据将数组转换为 Set,利用 Set 的快速查找

特性将数组转换为 Map,以元素为键来判断目标数据是否存在

如何在 Java 中判断数据是否在数组中

回答:

在 Java 中,判断数据是否在数组中可以使用以下方法:

使用 for 循环:

public static boolean contains(int[] arr, int target) {
  for (int element : arr) {
    if (element == target) {
      return true;
    }
  }
  return false;
}

使用 Arrays.binarySearch() 方法:

如果数组是有序的,可以使用 Arrays.binarySearch() 方法查找数据是否存在:

public static boolean contains(int[] arr, int target) {
  int index = Arrays.binarySearch(arr, target);
  return index >= 0;
}

使用 Stream 和 lambda 表达式:

public static boolean contains(int[] arr, int target) {
  return Arrays.stream(arr).anyMatch(element -> element == target);
}

使用 Set:

将数组转换为 Set 可以快速检查数据是否存在:

public static boolean contains(int[] arr, int target) {
  Set set = new HashSet<>(Arrays.asList(arr));
  return set.contains(target);
}

使用 Map:

将数组转换为 Map,其中元素作为键,可以快速判断数据是否存在:

public static boolean contains(int[] arr, int target) {
  Map map = new HashMap<>();
  for (int element : arr) {
    map.put(element, 1);
  }
  return map.containsKey(target);
}

以上方法各有优缺点,需要根据数组的大小和排序情况选择合适的方法。