线性(顺序)查找是逐一比对去查找,所以既可以处理有序的数组,也可以处理无序的数组。本方法实现了当一个有序数组中有多个相同的值时,返回其全部下标。
一、代码
import java.util.ArrayList;
public class SequenceSearch {
public static void main(String[] args) {
int[] arr = {11, 9, 11, -1, 34, 89, -1, 3, -1};
ArrayList<Integer> resIndexList = sequenceSearchAll(arr, -1);
if(resIndexList.size() != 0) {
System.out.println("resIndexList = " + resIndexList);
}else {
System.out.println("没有找到");
}
}
public static ArrayList<Integer> sequenceSearchAll(int[] arr, int value){
ArrayList<Integer> resIndexList = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++) {
if(arr[i] == value) {
resIndexList.add(i);
}
}
return resIndexList;
}
}
二、结果
1. 当查找 -1 时
resIndexList = [3, 6, 8]
2. 当查找 0 时
没有找到