任意输入一个5个元素的整数数组,求数组中的最大值和最小值之差是否在该数组中,如果在,则找出下标,如果不在,则输出不在

任意输入一个5个元素的整数数组,求数组中的最大值和最小值之差是否在该数组中,如果在,则找出下标,如果不在,则输出不在

public static void main(String[] args) throws IOException {

    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    int max = list.stream().max(Integer::compareTo).get();
    int min = list.stream().min(Integer::compareTo).get();

    int index = list.indexOf(max - min);
    System.out.println(index == -1 ? "不在" : index);

}

温馨提示:若问题解决了,望给个采纳,谢谢!若有其他疑问随时咨询

1、效果如下
不存值情况

img

存在值输出下标

img

2、代码如下

import java.io.*;
import java.util.Arrays;

class test  
{
    public static void main (String[] args) throws java.lang.Exception
    {
        //定义一个5个元素的整数数组
        int arr[]=new int[5];
        
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*100);
        }
        
        //计算数组中最大值和最小值之差
        int maxValue=0,minValue=0,value=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]>maxValue || maxValue==0) maxValue=arr[i];
            if(arr[i]<minValue || minValue==0) minValue=arr[i];
        }
        
        value=maxValue-minValue;
        
        System.out.println("数组值:"+Arrays.toString(arr));
        System.out.println("最大值:"+maxValue);
        System.out.println("最小值:"+minValue);
        System.out.println("最大值和最小值之差:"+value);
        
        int index=0;
        boolean flag =false;
        for(int i = 0; i < arr.length; i++){
            if(arr[i]==value){
                flag = true;
                index=i;
                break;
            }
        }

        if(flag)
            System.out.println("数组:"+Arrays.toString(arr)+",存在值:"+value+",下标值为:"+index);
        else 
            System.out.println("数组:"+Arrays.toString(arr)+",不存在值:"+value);
        
    }
}