0
点赞
收藏
分享

微信扫一扫

java 获取匹配的数组下标

Java获取匹配的数组下标

介绍

在Java中,经常会遇到需要查找数组中某个特定元素的下标的情况。本文将介绍几种常见的方法来获取匹配的数组下标。

顺序查找

顺序查找是最简单直接的方法,它从数组的第一个元素开始逐个比较,直到找到匹配的元素或者遍历完整个数组。以下是一个使用顺序查找来获取匹配的数组下标的示例代码:

public class SequentialSearch {
    public static int search(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == target) {
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9};
        int target = 5;
        int index = search(arr, target);
        if (index != -1) {
            System.out.println("目标元素的下标为:" + index);
        } else {
            System.out.println("目标元素不存在于数组中。");
        }
    }
}

上述代码中,search方法使用顺序查找算法来查找目标元素target在数组arr中的下标。如果找到了匹配的元素,则返回该元素的下标;否则,返回-1。

二分查找

二分查找是一种效率较高的查找方法,但要求数组必须是有序的。它通过将目标元素与数组的中间元素进行比较,从而逐步缩小查找范围,直到找到匹配的元素或者确定元素不存在于数组中。以下是一个使用二分查找来获取匹配的数组下标的示例代码:

public class BinarySearch {
    public static int search(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;
    }

    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9};
        int target = 5;
        int index = search(arr, target);
        if (index != -1) {
            System.out.println("目标元素的下标为:" + index);
        } else {
            System.out.println("目标元素不存在于数组中。");
        }
    }
}

上述代码中,search方法使用二分查找算法来查找目标元素target在数组arr中的下标。如果找到了匹配的元素,则返回该元素的下标;否则,返回-1。

哈希表

哈希表是一种基于哈希函数的数据结构,可以快速查找某个特定元素。在Java中,可以使用HashMap来实现哈希表。以下是一个使用哈希表来获取匹配的数组下标的示例代码:

import java.util.HashMap;
import java.util.Map;

public class HashMapSearch {
    public static int search(int[] arr, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            map.put(arr[i], i);
        }
        return map.getOrDefault(target, -1);
    }

    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9};
        int target = 5;
        int index = search(arr, target);
        if (index != -1) {
            System.out.println("目标元素的下标为:" + index);
        } else {
            System.out.println("目标元素不存在于数组中。");
        }
    }
}

上述代码中,search方法使用哈希表来查找目标元素target在数组arr中的下标。首先,将数组中的每个元素及其下标存储在哈希表中;然后,通过getOrDefault方法来获取目标元素的

举报

相关推荐

0 条评论