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 条评论