Как получить индекс массива java
Перейти к содержимому

Как получить индекс массива java

  • автор:

Найти индекс максимального элемента в массиве

Добрый день господа, помогите найти легкий код, а именно нужно найти максимальный индекс в массиве, я написал код, но где то сделал ошибку, подскажите пожалуйста.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public class Test { public static void main(String[] args) { int[] scores = {43, 45, 64, 545, 2}; int max = scores[0]; int indexForMax = 0; for (int i = 0; i  scores.length; i++) { int score = scores[i]; if (max  score) { max = score; indexForMax=i; } } System.out.println(indexForMax); } }

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как вывести на экран индекс максимального элемента массива?
Дан массив целых чисел, вывести на экран индекс максимального элемента массива. нужна вся.

Получить индекс элемента в массиве
нужно удалить элементы с минусом по индексу, но не знаю как вытянуть индекс из элемента public.

Написать метод, возвращающий индекс искомого элемента в массиве
Принимает массив интов, и значение типа инт, возвращает индекс массива в котором значение совпадает.

Как присвоить переменной индекс последнего элемента в массиве неопределенной длинны?
Есть массив переменной длинны, и мне нужно присвоить переменной индекс последнего элемента массива.

Как найти индекс массива java

Чтобы найти индекс искомого элемента в массиве можно в цикле перебрать все элементы и сравнить их с искомым. Если они равны, будет выведен индекс первого подходящего элемента.

// Число, которое будем искать int num = 3; // Переменная для хранения индекса, // найденного числа int index = -1; int[] arr = 1, 2, 3, 4, 5>; for (int i = 0; i  arr.length; i++)  // Если элемент и число равны, то // сохраняй индекс if (arr[i] == num)  index = i; > > System.out.println(index); // => 2 

Также можно воспользоваться пакетом org.apache.commons.lang , методом indexOf() из класса ArrayUtils для нахождения индекса элемента.

import org.apache.commons.lang3.ArrayUtils; public class Example  public static void main(String[] args)  int[] arr = 1, 2, 3, 4, 5>; // индекс числа 3 int index = ArrayUtils.indexOf(arr, 3); System.out.println(index); // => 2 > > 

Проверьте, существует ли индекс в массиве Java

В этом посте будет обсуждаться, как проверить, существует ли индекс в массиве Java.

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

public class Main
public static void main ( String [ ] args ) < int index = 6 ; System . out . println ( "The element at index " + index + " is " + arr [ index ] ) ;

результат:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 5
at Main.main(Main.java:7)

Во избежание получения ArrayIndexOutOfBoundsException , мы можем явно проверить, находится ли индекс массива в границах массива перед доступом к нему.

1. Пользовательская процедура для проверки длины

Простое решение состоит в том, чтобы написать специальную процедуру для проверки правильности индекса массива. Индекс массива действителен, если он неотрицательный и меньше размера массива. Длина массива может быть определена из конечной переменной экземпляра length .

Array.prototype.indexOf()

Метод indexOf() возвращает первый индекс, по которому данный элемент может быть найден в массиве или -1, если такого индекса нет.

Синтаксис

arr.indexOf(searchElement[, fromIndex = 0])

Параметры

Искомый элемент в массиве.

Индекс, с которого начинать поиск. Если индекс больше или равен длине массива, возвращается -1, что означает, что массив даже не просматривается. Если индекс является отрицательным числом, он трактуется как смещение с конца массива. Обратите внимание: если индекс отрицателен, массив всё равно просматривается от начала к концу. Если рассчитанный индекс оказывается меньше 0, поиск ведётся по всему массиву. Значение по умолчанию равно 0, что означает, что просматривается весь массив.

Описание

Метод indexOf() сравнивает искомый элемент searchElement с элементами в массиве, используя строгое сравнение (en-US) (тот же метод используется оператором === , тройное равно).

Примеры

Пример: использование indexOf()

В следующем примере indexOf() используется для поиска значений в массиве.

var array = [2, 5, 9]; array.indexOf(2); // 0 array.indexOf(7); // -1 array.indexOf(9, 2); // 2 array.indexOf(2, -1); // -1 array.indexOf(2, -3); // 0 

Пример: нахождение всех вхождений элемента

В следующем примере indexOf() используется для поиска всех индексов элемента в указанном массиве, которые с помощью push() добавляются в другой массив.

var indices = []; var array = ["a", "b", "a", "c", "a", "d"]; var element = "a"; var idx = array.indexOf(element); while (idx != -1)  indices.push(idx); idx = array.indexOf(element, idx + 1); > console.log(indices); // [0, 2, 4] 

Полифил

Метод indexOf() был добавлен к стандарту ECMA-262 в 5-м издании; поэтому он может отсутствовать в других реализациях стандарта. Вы можете работать с ним, добавив следующий код в начало ваших скриптов, он позволяет использовать indexOf() в реализациях, которые не поддерживают этот метод. Этот алгоритм является точно тем, что описан в ECMA-262 5-го издания; он предполагает, что TypeError и Math.abs() имеют свои первоначальные значения.

// Шаги алгоритма ECMA-262, 5-е издание, 15.4.4.14 // Ссылка (en): http://es5.github.io/#x15.4.4.14 // Ссылка (ru): http://es5.javascript.ru/x15.4.html#x15.4.4.14 if (!Array.prototype.indexOf)  Array.prototype.indexOf = function (searchElement, fromIndex)  var k; // 1. Положим O равным результату вызова ToObject с передачей ему // значения this в качестве аргумента. if (this == null)  throw new TypeError('"this" is null or not defined'); > var O = Object(this); // 2. Положим lenValue равным результату вызова внутреннего метода Get // объекта O с аргументом "length". // 3. Положим len равным ToUint32(lenValue). var len = O.length >>> 0; // 4. Если len равен 0, вернём -1. if (len === 0)  return -1; > // 5. Если был передан аргумент fromIndex, положим n равным // ToInteger(fromIndex); иначе положим n равным 0. var n = +fromIndex || 0; if (Math.abs(n) === Infinity)  n = 0; > // 6. Если n >= len, вернём -1. if (n >= len)  return -1; > // 7. Если n >= 0, положим k равным n. // 8. Иначе, n // Если k меньше нуля 0, положим k равным 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Пока k < len, будем повторятьwhile (k  len)  // a. Положим Pk равным ToString(k). // Это неявное преобразование для левостороннего операнда в операторе in // b. Положим kPresent равным результату вызова внутреннего метода // HasProperty объекта O с аргументом Pk. // Этот шаг может быть объединён с шагом c // c. Если kPresent равен true, выполним // i. Положим elementK равным результату вызова внутреннего метода Get // объекта O с аргументом ToString(k). // ii. Положим same равным результату применения // Алгоритма строгого сравнения на равенство между // searchElement и elementK. // iii. Если same равен true, вернём k. if (k in O && O[k] === searchElement)  return k; > k++; > return -1; >; > 

Спецификации

Specification
ECMAScript Language Specification
# sec-array.prototype.indexof

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • Array.prototype.lastIndexOf()
  • TypedArray.prototype.indexOf() (en-US)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *