Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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_Indexing - Fatal编程技术网

Java 查找数组中最大元素的索引

Java 查找数组中最大元素的索引,java,arrays,indexing,Java,Arrays,Indexing,我想写一段代码,返回给定数组中最大元素的索引。然而,当我尝试编译时,我得到了一条我似乎无法理解的消息。虽然我已经完成了错误消息告诉我的事情,但它一直在告诉我要修复它们。请帮助这个新手程序员 公共类{ int[]数组=新的int[10]; 数组[0]=100; 数组[1]=200; 数组[2]=300; 数组[3]=400; 数组[4]=500; 数组[5]=600; 数组[6]=700; 数组[7]=800; 阵列[8]=900; 数组[9]=1000; 整数指数; 公共静态void main

我想写一段代码,返回给定数组中最大元素的索引。然而,当我尝试编译时,我得到了一条我似乎无法理解的消息。虽然我已经完成了错误消息告诉我的事情,但它一直在告诉我要修复它们。请帮助这个新手程序员


公共类{
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
整数指数;
公共静态void main(字符串参数){

对于(int i=0;i这种类型的初始化不能在方法之外完成:

array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
或者将作业移动到您的主任务中,或者更改为

int[] array = new int[10];

顺便说一句,除了这个编译错误,你的代码没有完成它应该做的事情。它会抛出ArrayIndexOutOfBoundsException(因为当我达到9时,
array[i+1]
将超出范围)。为了找到最大元素的索引,必须维护一个保持当前最大值的变量,并将其与数组中的所有元素进行比较

public static void main(String args) {
    int max = array[0];
    index = 0;
    for (int i=1; i<10; i++) {
        if (array[i] > max) {
            index = i;
            max = array[i];
        }
    }
    System.out.println(index);
}
publicstaticvoidmain(字符串参数){
int max=数组[0];
指数=0;
对于(int i=1;i max){
指数=i;
max=数组[i];
}
}
系统输出打印项次(索引);
}

这种类型的初始化不能在方法之外完成:

array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
或者将作业移动到您的主任务中,或者更改为

int[] array = new int[10];

顺便说一句,除了这个编译错误,你的代码没有完成它应该做的事情。它会抛出ArrayIndexOutOfBoundsException(因为当我达到9时,
array[i+1]
将超出范围)。为了找到最大元素的索引,必须维护一个保持当前最大值的变量,并将其与数组中的所有元素进行比较

public static void main(String args) {
    int max = array[0];
    index = 0;
    for (int i=1; i<10; i++) {
        if (array[i] > max) {
            index = i;
            max = array[i];
        }
    }
    System.out.println(index);
}
publicstaticvoidmain(字符串参数){
int max=数组[0];
指数=0;
对于(int i=1;i max){
指数=i;
max=数组[i];
}
}
系统输出打印项次(索引);
}

几乎没有更正:

公共类{
//从这里移到main()内部
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
int index;//必需的默认值
//移入main()直到这里
公共静态void main(字符串参数){//缺少[]符号
对于(int i=0;i<10;i++){
if(数组[i]<数组[i+1]){
指数=i+1;
}否则{
指数=i;
}
i++;
}
系统输出打印项次(索引);
}

}
几乎没有更正:

公共类{
//从这里移到main()内部
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
int index;//必需的默认值
//移入main()直到这里
公共静态void main(字符串参数){//缺少[]符号
对于(int i=0;i<10;i++){
if(数组[i]<数组[i+1]){
指数=i+1;
}否则{
指数=i;
}
i++;
}
系统输出打印项次(索引);
}
}
公共静态void main(字符串[]args){
int[]数组={100200300400500600700800900};
System.out.println(最高值(数组));
}
公共静态int最高值(int[]arr){
int指数=0;
int highestValue=Integer.MIN_值;
对于(int i=0;i最高值){
最高值=温度;
指数=i;
}
}
收益指数;
}
公共静态void main(字符串[]args){
int[]数组={100200300400500600700800900};
System.out.println(最高值(数组));
}
公共静态int最高值(int[]arr){
int指数=0;
int highestValue=Integer.MIN_值;
对于(int i=0;i最高值){
最高值=温度;
指数=i;
}
}
收益指数;
}

初始化数组时,我们不是使用
{}
而不是
()
?它有效吗(我不确定这就是我问的原因)或者它是一个打字错误?初始化数组时,我们不是使用
{}
而不是
()
?它有效吗(我不确定这就是我问的原因)旁注:我衷心建议您学习一些关于java类结构的基本教程,以及java中的“如何命名”(您的类名应始终以大写字母开头).旁注:我衷心建议您学习一些有关java类结构的基本教程,以及java中的“如何命名”(您的类名应始终以大写字母开头)。
public static void main(String[] args) {
    int[] array = {100, 200, 300, 400, 500, 600, 700, 800, 900};
    System.out.println(highestValue(array));
}

public static int highestValue(int[] arr) {

    int index = 0;
    int highestValue = Integer.MIN_VALUE;

    for(int i = 0; i < arr.length; i++) {
        int temp = arr[i];
        if(temp > highestValue) {
            highestValue = temp;
            index = i;
        }
    }
    return index;
}