package test;
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
//在一个数组中,找出所有指定数据的下标位置
int[] arr = {1,2,3,2, 2,8,2,89,2};
int count = 0;//计数器的思想
//指定一个数据 2 以上的数组中的下标 ===》[1, 3, 5]
//将找到下标存到数组中
//声明一个空的数组
int[] indexes = new int[arr.length];//[0,0,0,0,0,0]
/**
* i=0 0<4 true if 2==arr[0] 2==1false i++
* i=1 1<4 true if 2==arr[1] 2==2 true indexes[0] = 1 ==>indexes=[1,0,0,0] i++
* i=2 2<4 true if 2==arr[2] 2==3 false i++
* i=3 3<4 true if 2==arr[3] 2==2true indexes[1] = 3===>index=[1,3,0,0] i++
* i=4 4<4 false 循环
*/
for (int i = 0; i < arr.length; i++) {
if (2 == arr[i]) {
indexes[count++] = i;
}
}
//System.out.println(Arrays.toString(indexes));//[1,3,0,0]==>[1,3]
//咱们再弄一个一个空的数组,这个数组的容量是 count
//System.out.println(count);
int[] newIndexes = new int[count];//[0,0]
/**
* i=0 0<2 true newIndexes[0] = indexes[0]=>newIndexes[0]= 1==>[1,0] i++
* i=1 1<2 true newIndexes[1] = indexes[1]=>newIndexes[1] = 3==>[1,3] i++
* i=2 2<2 false 循环结束
* newIndexes = {1,3}
*/
for (int i = 0; i < newIndexes.length; i++) {
newIndexes[i] = indexes[i];
}
System.out.println(Arrays.toString(newIndexes));
}
}
在一个数组中,找出所有指定数据的下标位置
最新推荐文章于 2023-11-24 18:22:10 发布