package cn.mingtai;
public class FindList {
public static void main(String[] args) {
int [] arr = {1,5,9,20,30,40};
int temp; //作为差值 Math.abs
int [] afterarr =new int[arr.length];//定义装差值的绝对值的数组
int [] index =new int[arr.length]; //定义存下标数组
//遍历旧数组,把差值存进新数组
for(int j=0;j<arr.length;j++) { //0-5
temp = Math.abs(arr[j]-7);
afterarr[j]=temp;
}
int minNum = getMinArr(afterarr);
System.out.println("最小值为:"+minNum);
//遍历出新数组的值
for (int i = 0 ; i<afterarr.length;i++) {
if(minNum == afterarr[i]) {
index[i]=i;
}
}
for(int i =0 ; i<index.length;i++) {
int lastindex = index[i];
//System.out.println("拿到的下标为"+index[i]);
if (lastindex != 0) {
System.out.println("得到的与7的差值的绝对值最小的为:"+arr[lastindex]);
}
}
}
//获取最小值
public static int getMinArr(int[] afterarr) {
int minNum = afterarr[0]; //先设最小值为数组第一个
for(int i=0 ; i<afterarr.length ; i++) {
minNum = minNum<afterarr[i]?minNum:afterarr[i];
}
return minNum;
}
}
运行截图: