溫馨提示×

java數組怎樣進行查找

小樊
145
2024-11-15 22:51:17
欄目: 編程語言

在Java中,有多種方法可以對數組進行查找。以下是一些常見的方法:

  1. 線性查找(Linear Search):遍歷數組中的每個元素,直到找到目標值或遍歷完整個數組。這種方法適用于無序數組。
public int linearSearch(int[] arr, int target) {
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == target) {
            return i; // 目標值找到,返回其索引
        }
    }
    return -1; // 目標值未找到,返回-1
}
  1. 二分查找(Binary Search):要求數組是有序的。通過不斷將搜索范圍減半,直到范圍縮小到0。這種方法適用于有序數組。
public int binarySearch(int[] arr, int target) {
    int left = 0;
    int right = arr.length - 1;

    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) {
            return mid; // 目標值找到,返回其索引
        } else if (arr[mid] < target) {
            left = mid + 1; // 目標值在右側子數組
        } else {
            right = mid - 1; // 目標值在左側子數組
        }
    }
    return -1; // 目標值未找到,返回-1
}
  1. Java 8中的Stream API:可以使用Stream API對數組進行查找,這種方法適用于Java 8及以上版本。
import java.util.OptionalInt;

public OptionalInt search(int[] arr, int target) {
    return Arrays.stream(arr).filter(x -> x == target).findFirst();
}

使用示例:

public static void main(String[] args) {
    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int target = 5;

    // 線性查找
    int linearIndex = linearSearch(arr, target);
    System.out.println("線性查找結果: " + linearIndex);

    // 二分查找
    int binaryIndex = binarySearch(arr, target);
    System.out.println("二分查找結果: " + binaryIndex);

    // Stream API查找
    OptionalInt streamIndex = search(arr, target);
    System.out.println("Stream API查找結果: " + streamIndex.orElse(-1));
}

這些方法可以根據具體需求和數組類型選擇使用。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女