Java求数组中元素的所有索引位置及第一次出现位置和最后一次出现位置
1.直接调用Array.binarySearch方法输出索引位置
2.自己写方法实现调用
3.所有位置通过list集合存储返回实现,
以下是代码实现:
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayFindElements {
public static void main(String[] args) {
//定义一个数组
int[] arr = {5,6,99,61,378,57,6,-3};
//调用方法实现第一个出现的位置
int index = getArrayIndex(arr,6);
System.out.println(index);
//直接调用Array.binarySearch方法输出索引位置
int position = Arrays.binarySearch(arr, 6);
System.out.println("直接调用Array.binarySearch方法输出索引位置:"+position);
//调用方法实现所有索引位置
ArrayList<Integer> list = new ArrayList<Integer>();
list= getAllArrayIndex(arr, 6);
System.out.println("元素所有索引位置:");
for (int i:list) {
System.out.println(i);
}
}
//获取元素在数组中的索引位置。
private static int getArrayIndex(int[] arr, int i) {
// TODO Auto-generated method stub
int index = -1;
if (arr!=null&&arr.length!=0) {
for (int j = 0; j < arr.length; j++) {
if (arr[j]==i) {
index = j;
break;//添加break,求取的就是数据在数组中第一次出现的索引位置
//不添加break,求取的就是数据在数组中最后一次出现的索引位置
}
}
return index;
}else {
System.out.println("数组不能为null或者数组长度不能为0");
}
return -1;
}
//获取元素在数组中的所有索引位置。
private static ArrayList<Integer> getAllArrayIndex(int[] arr, int i) {
ArrayList<Integer> list = new ArrayList<Integer>();
// TODO Auto-generated method stub
if (arr!=null&&arr.length!=0) {
for (int j = 0; j < arr.length; j++) {
if (arr[j]==i) {
list.add(j);
}
}
return list;
}else {
System.out.println("数组不能为null或者数组长度不能为0");
}
return null;
}
}
显示结果: