2014-02-11 2 views
0

Я должен написать программу, которая находит самый большой индекс в несортированном массиве целых чисел.Java массивы, возвращающие индекс максимального массива

Использовать метод, который принимает массив целых чисел в качестве параметра. Метод должен искать массив и возвращать индекс наибольшего значения.

Таким образом, я написал программу, которая возвращает самое высокое значение, например, она возвращает 13 как наибольшее число, а не индекс 2. Так как бы я мог вернуть индекс вместо самого самого высокого числа? Если это легко исправить, остальная часть моего кода выглядит правильно? Благодаря!

public class LargestInteger 
{ 
    public static void main(String[] args) 
    { 
     int[] largeArray = {5,4,13,7,7,8,9,10,5}; 

     System.out.println(findLargest(largeArray)); 
    } 

    public static int findLargest(int array[]) 
    { 
     int largest = array[0]; 

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

     return largest; 
    } 
} 
+1

если вы хотите для возврата ' index', просто измените 'most = array [i]; 'to' most = i; ' – Baby

+0

Соответствующий: http://stackoverflow.com/questions/1522108/how-to-find-the-index-of-an-element-in-an-array-in-java –

+0

Be осторожно с вашей формулировкой. То, о чем вы просили, НЕ является тем, о чем говорится в выписанной проблеме. –

ответ

1

Вам необходимо сохранить и сохранить самый большой индекс. Попробуйте это:

public static int findLargest(int array[]) 
{ 
    int largest = array[0]; 
    int largestIndex = 0; 

    for(int i = 0; i < array.length; i++) 
    { 
     if(array[i] > largest) { 
      largest = array[i]; 
      largestIndex =i; 
     } 
    } 

    return largestIndex; 
} 
0

Создать for петли в конце методы, и переменный, как index. Найдите в списке и найдите, соответствует ли переменная, не забывая при этом увеличивать значение переменной index.

Пример:

int index = 0; 
for (int i : array) 
{ 
    if (i == largest) 
    { 
     break; 
    } 
    index++; 
} 
return index; 
0

Вы можете добавить фильм метода, который получает наибольшее число и массив, то поиск индекса этого номера:

public class LargestInteger 
{ 
    public static void main(String[] args) 
    { 
     int[] largeArray = {5,4,13,7,7,8,9,10,5}; 

     System.out.println(indexOfLargest(largeArray, findLargest(largeArray))); 
    } 

    public static int findLargest(int array[]) 
    { 
     int largest = array[0]; 

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

     return largest; 
    } 

    public static int indexOfLargest(int array[], int number) 
    { 

     for (int i = 0; i < array.length; i++) { 
      if (array[i] == number) 
       return i;    
     } 

     return -1; 
    } 

} 
2

Может также сделан с,

int[] largeArray  = {5,4,13,7,7,8,9,10,5}; 
int largestElement = findLargest(largeArray); 
int index   = Arrays.asList(5,4,13,7,7,8,9,10,5).indexOf(largestElement); 
3

В java 8 вы можете сделать это просто:

Чтобы получить высокий:

int[] largeArray = {5,4,13,7,7,8,9,10,5}; 
System.out.println(IntStream.of(largeArray).max().getAsInt()); 

Результат: 13

И подвести их:

System.out.println(IntStream.of(largeArray).sum()); 

Результат: 68

+4

Задача OP заключалась в том, чтобы найти индекс, а не максимальное значение (хотя код, отправленный OP, неверен). –

Смежные вопросы