Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找数组中的最高索引值_Java_Arrays - Fatal编程技术网

Java 查找数组中的最高索引值

Java 查找数组中的最高索引值,java,arrays,Java,Arrays,你好,我想找到索引最高的n数组。例如,我有两个数组: [1,2,3,0,-1]-应返回具有最大值的2-索引 []-应返回-1,因为数组为空 我有一个方法: public int findMax(int[] array){ int values =0; for(int i=0; i<array.length; i++){ if(array == null) {return -1;} else(array{i}>values){ re

你好,我想找到索引最高的n数组。例如,我有两个数组: [1,2,3,0,-1]-应返回具有最大值的2-索引 []-应返回-1,因为数组为空

我有一个方法:

   public int findMax(int[] array){
    int values =0;
    for(int i=0; i<array.length; i++){
    if(array == null)
    {return -1;}
    else(array{i}>values){
    return i;
    }
 }
public int findMax(int[]数组){
int值=0;
对于(int i=0;ivalues){
返回i;
}
}

我做错了什么?

您的程序有逻辑错误和编译错误。我猜你想写这样的代码

public int findMax(int[] array){
    return IntStream.range(0, array.length).boxed().max(Comparator.comparing(i -> array[i])).orElse(-1));
}
public static void main(String[] args) throws IOException {
    System.out.println(findMax(new int[] { 1, 2, 3, 0, -1 }));
    System.out.println(findMax(new int[] {}));
}

public static int findMax(int[] array) {
    if (array == null || array.length == 0) {
        return -1;
    }

    int maxIndex = 0;
    int maxNum = array[0];
    for (int i = 1; i < array.length; i++) {
        if (array[i] > maxNum) {
            maxNum = array[i];
            maxIndex = i;
        }
    }

    return maxIndex;
}

假设您想找到最大元素和最大值的第一个索引

为此编码

public void findMax(int[] array){
    int values =-99999999; //values is any large negative number
    int index=-1;
    if(array.length == 0)
    {System.out.println("-1");}
    for(int i=0; i<array.length; i++){
    if(array[i]>values){ 
       values=array[i];
       index=i;
      }
    System.out.println("Max element is"+values +"and index is"+index);
    }
 }
public void findMax(int[]数组){
int values=-9999999;//值是任意大的负数
int指数=-1;
如果(array.length==0)
{System.out.println(“-1”);}
对于(int i=0;ivalues){
值=数组[i];
指数=i;
}
System.out.println(“最大元素为“+values+”,索引为“+index”);
}
}
试试这个:

public int findMax(int[] array) {
    if (array == null || array.length == 0)
        return -1;

    int index = 0;
    int max = -Integer.MAX_VALUE;
    for (int i=0; i< array.length; i++) {
        if (array[i] > max) {
            index = i;
            max = array[i];
        }
    }

    return index;
}
public int findMax(int[]数组){
if(array==null | | array.length==0)
返回-1;
int指数=0;
int max=-Integer.max_值;
for(int i=0;imax){
指数=i;
max=数组[i];
}
}
收益指数;
}

您的代码甚至无法编译。不能使用
{}
访问数组的索引。改为使用
[]
否则
没有条件。它不是
else{}
就是
else如果(条件){}
哦,我明白了。修复如果数组中的所有元素都小于-9999999,则此操作将失败。在这种情况下,您必须采用INT_MIN或整数的最小值。
public int findMax(int[] array) {
    if (array == null || array.length == 0)
        return -1;

    int index = 0;
    int max = -Integer.MAX_VALUE;
    for (int i=0; i< array.length; i++) {
        if (array[i] > max) {
            index = i;
            max = array[i];
        }
    }

    return index;
}