// 随机10个数,键盘输入一个元素,查找并返回它对应的索引值,可有重复数字
import java.util.Arrays;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
System.out.println(Arrays.toString(arr));
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要查找的数字");
int target = sc.nextInt();
System.out.println("您输入的数字是" + target);
getIndex(arr, target);
}
static int[] arr;
static {
arr = new int[10];
for (int i = 0; i < 10; i++) {
arr[i] = (int) (Math.random() * 10);
}
}
public static void getIndex(int[] arr, int target) {
boolean flag = true; // 定义一个开关,
int[] indexs = new int[arr.length]; // 数组中可能有重复元素,因此索引不止一个,定义一个数组用来接收索引,且这个索引数组的最大长度为原数组的长度
int j = 0; // 定义一个变量,用来记录重复元素的个数
for (int i = 0; i < arr.length; i++) { // 遍历数组查找重复元素
if (target == arr[i]) {
indexs[j] = i; // 将重复元素的索引存入数组
flag = false; // 如果有重复元素,开关关闭
j++;
}
}
if (flag) { // 执行到这里,如果没有重复元素,开关就是开的,执行这句代码
System.out.println("没有你要找的元素");
} else { // 如果开关是关的,执行else中的代码
System.out.print("您查找的目标在数组中的第");
for (int i = 0; i < j; i++) { // 遍历索引数组,只输出其中有用的索引部分,也就是用j(重复元素的个数)控制遍历次数
System.out.print(indexs[i]);
if (i == j - 1) {
break;
}
System.out.print(",");
}
System.out.print("个位置");
}
}
}
//较简单,不做过多解释,欢迎指出不足,一起学习进步呀!!!
数组查找,返回其索引位置(可有重复)
于 2018-11-30 15:40:37 首次发布