Дополнительно
Как найти индекс элемента в массиве int?
Как найти индекс определенного значения в массиве Java типа int
?
Я пробовал использовать Arrays.binarySearch
на моем несортированном массиве, он только иногда дает правильный ответ.
73
17
Обратите внимание, что это решение потокобезопасно, поскольку создает новый объект типа List.
Также вы не захотите вызывать эту процедуру в цикле или что-то подобное, так как вы будете создавать новый объект каждый раз, когда
Другой вариант, если вы используете коллекций гуава ИНЦ.метод indexOf
Это отличный выбор, когда пространство, время и повторное использование кода на премиум. Это также очень лаконична.
Посмотрите на [АПИ][1] и он сказал, что нужно отсортировать массив сначала
Так:
Если вы Don'т хотите, чтобы отсортировать массив:
Скопируйте этот метод в вашем классе
Нужно отсортировать значения перед использованием бинарного поиска. В противном случае ручной способ-попробовать все Интс в разделе.
В качестве альтернативного метода для отображения всех индексов для каждого значения в карте<целое число, целое и GT;.
а потом карту.вам(значение), чтобы получить индекс.
С уважением, СтéСтефан
@пст, спасибо за ваши комментарии. Вы можете разместить другой альтернативный способ ?
Вы можете преобразовать его в список, а затем использовать метод indexOf:
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#asList(T...) http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html#indexOf(java.lang.Object)
Вы можете использовать современные Java, чтобы решить эту проблему. Пожалуйста, используйте код ниже:
Простой:
В случае, если кто до сих пор ищу ответ-
Вы можете использовать ArrayUtils.метод indexOf() из библиотека Апач Викискладе.
Если вы используете Java 8, вы также можете использовать API Strean:
публичный статический тип int метод indexOf(тип int[] массив, инт valueToFind) { если (массив == значение null) { возврат -1; } возвращение IntStream.диапазон(0, массив.длина) .фильтра(я -> valueToFind == массив[я]) .метод findfirst() .иначе(-1); }
Двоичный поиск: двоичный поиск также может быть использован, чтобы найти индекс элемента массива в массив. Но бинарный поиск может быть использован, только если массив не будет отсортирован. Java предоставляет нам встроенные функции, который может быть найден в библиотеке массивов Java, который будет rreturn индекса, если элемент присутствует, то она возвращает -1. Сложность будет o(зарегистрируйте N). Ниже приводится реализация бинарного поиска.
Вы можете сделать это такой:
}
Добавлено гаммирования :)
Вы можете либо пройтись по массиву, пока не найдете нужный индекс, либо использовать
List
. Обратите внимание, что вы можете преобразовать массив в список с помощьюasList()
.В методе Main, используя для петли: -третий цикл в моем примере-это ответ на этот вопрос. -в моем примере я сделал массив из 20 случайных целых чисел, присвоить переменной наименьшее число, и остановить цикл, когда местоположение массива достиг наименьшего значения при подсчете количества петель.
Выходы кода все цифры и их расположение и расположение мельчайших номер и наименьшее количество.