Есть ли у Java встроенная функция, позволяющая мне линейно искать элемент в массиве или мне нужно просто использовать цикл for?Поиск элемента в массиве в Java
ответ
Существует contains
метод для списков, так что вы должны быть в состоянии сделать:
Arrays.asList(yourArray).contains(yourObject);
Внимание: это не может делать то, что вы (или я) ожидать, смотрите комментарии Тома ниже.
Используйте петлю для петли. В массив нет ничего. Или переключитесь на класс коллекции java.util Collection.
Возможно, вы захотите использовать реализацию вместо плоского массива.
Интерфейс Collection
определяет метод contains(Object o)
, который возвращает true
/false
.
ArrayList
реализация определяет indexOf(Object o)
, который дает индекс, но этот метод не относится ко всем реализациям коллекции.
Оба эти методы требуют надлежащей реализации методы equals()
, и вы, вероятно, хотите правильно реализованный hashCode()
метода только в случае, если вы используете хэш на основе Collection
(например HashSet
).
Вы можете использовать один из множества методов Arrays.binarySearch()
. Имейте в виду, что сначала необходимо отсортировать массив.
Это опция, только элементы массива сравнимы. –
Мы можем только предположить, что это так, например. массив из ints, Strings и т. д. Вы всегда можете предоставить пользовательский ['Comparator'] (http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html) для сортировки и если необходимо. – krock
трудно поверить, что нет Arrays.search ...
С Java 8, вы можете сделать это:
int[] haystack = {1, 2, 3};
int needle = 3;
boolean found = Arrays.stream(haystack).anyMatch(x -> x == needle);
Вы должны были бы сделать
boolean found = Arrays.stream(haystack).anyMatch(x -> needle.equals(x));
, если вы работаете с объектами.
- 1. Поиск элемента в массиве
- 2. поиск элемента в массиве
- 3. Поиск элемента в массиве
- 4. Поиск индекса элемента в массиве
- 5. Python: поиск элемента в массиве
- 6. Поиск элемента в массиве объектов
- 7. Поиск элемента Majority в массиве
- 8. Perl: Поиск элемента в массиве
- 9. Mongoose поиск элемента в массиве
- 10. Поиск дубликатов элемента в массиве
- 11. Поиск отсутствующего элемента в массиве
- 12. Поиск определенного элемента в массиве
- 13. Поиск позиции элемента в массиве
- 14. Поиск элемента в массиве C
- 15. поиск элемента в многомерном массиве в python
- 16. Поиск элемента в массиве в документе
- 17. Поиск частоты каждого элемента в массиве
- 18. Поиск элемента в круговом отсортированном массиве
- 19. Java: Поиск целого в массиве
- 20. Java - поиск подстроки в массиве
- 21. Java Поиск элементов в массиве
- 22. Поиск строки в массиве (Java)
- 23. JAVA: Поиск значений в массиве
- 24. Поиск числа в массиве java
- 25. Поиск элемента заданного ранга в произвольном массиве
- 26. Поиск элемента в массиве, и возвращение его
- 27. Поиск элемента в массиве и возвращает его
- 28. Поиск следующего элемента в неупорядоченном массиве
- 29. поиск элемента в массиве и тумблер значения
- 30. Головоломка: поиск повторяющегося элемента в массиве
Это довольно короткий, но этот прецедент достаточно распространен, что они действительно должны были добавить функцию на язык – Casebash
Будьте осторожны, чтобы не использовать это с примитивными массивами. –
@Tom: Почему бы и нет? Разве это не работает? – Casebash