用Java写一个用递归方法查找一个数组中的元素所在索引, 如果找到返回索引,没找到返回-1;
时间: 2023-03-20 07:01:12 浏览: 77
以下是使用递归方法查找一个数组中的元素所在索引的Java代码:
```java
public class RecursiveArraySearch {
public static int search(int[] arr, int target) {
return searchHelper(arr, target, 0);
}
private static int searchHelper(int[] arr, int target, int index) {
if (index >= arr.length) {
return -1; // 没有找到
}
if (arr[index] == target) {
return index; // 找到了
}
return searchHelper(arr, target, index + 1); // 递归查找下一个元素
}
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9};
int target = 5;
int index = search(arr, target);
System.out.println("目标元素 " + target + " 在数组中的索引是 " + index);
}
}
```
在这个代码中,`search` 方法是对外暴露的方法,它会调用 `searchHelper` 方法进行递归查找。`searchHelper` 方法接收三个参数:目标数组、目标元素、和当前查找的索引。如果当前索引已经超出了数组长度,就返回 `-1` 表示没找到;如果当前索引处的元素等于目标元素,就返回当前索引;否则就递归调用 `searchHelper` 方法查找下一个元素。最后,`main` 方法演示了如何调用 `search` 方法,并输出查找结果。