¿Tiene Java una función incorporada que me permita buscar linealmente un elemento en una matriz o simplemente tengo que usar un ciclo for?Encontrar un elemento en una matriz en Java
Respuesta
hay un método contains
para las listas, por lo que debería ser capaz de hacer:
Arrays.asList(yourArray).contains(yourObject);
Advertencia: esto podría no hacer lo que usted (o yo) espera, véase el comentario de Tom continuación.
Utilice un bucle for. No hay nada integrado en la matriz. O cambie a una clase de colección java.util.
Es posible que desee considerar el uso de una implementación Collection
en lugar de una matriz plana.
La interfaz Collection
define un método contains(Object o)
, que devuelve true
/false
.
ArrayList
implementación define indexOf(Object o)
, que proporciona un índice, pero ese método no está en todas las implementaciones de colecciones.
Ambos métodos requieren implementaciones propias del método equals()
, y es probable que quieren un hashCode()
método implementado correctamente en caso de que esté utilizando un hash basado Collection
(por ejemplo HashSet
).
Puede usar uno de los muchos métodos Arrays.binarySearch()
. Tenga en cuenta que la matriz debe ordenarse primero.
Esa es una opción, solo los elementos de la matriz son comparables. –
Solo podemos suponer que este es el caso, p. una matriz de Ints, Strings, etc. Siempre puede proporcionar un ['Comparator'] personalizado (http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html) para ordenar y buscar si es necesario. – krock
difícil de creer que no hay Arrays.search ...
Con Java 8, se puede hacer esto:
int[] haystack = {1, 2, 3};
int needle = 3;
boolean found = Arrays.stream(haystack).anyMatch(x -> x == needle);
que había necesidad de hacer
boolean found = Arrays.stream(haystack).anyMatch(x -> needle.equals(x));
si está trabajando con objetos.
- 1. Python: encontrar un elemento en una matriz
- 2. Encontrar la posición de un elemento en una matriz sencilla
- 3. Formas efectivas de encontrar un elemento en una matriz Javascript
- 4. ¿Encontrar la posición de un elemento en una matriz bidimensional?
- 5. Eliminar un elemento de una matriz (Java)
- 6. Encontrar vecinos en una matriz bidimensional
- 7. Java: Encontrar el valor más alto en una matriz
- 8. índice del elemento en una matriz multidimensional
- 9. Cómo encontrar y modificar un valor en una matriz anidada
- 10. ¿Cómo obtengo el índice de un elemento en una matriz?
- 11. Encontrar un elemento específico en un NSArrayController
- 12. Encontrar elemento mínimo en matriz, y su índice de
- 13. Java: leer un archivo en una matriz
- 14. Java - Obtener posición del elemento en la matriz
- 15. Grep para encontrar el elemento en la matriz Perl
- 16. cómo insertar un elemento asociativo en una matriz en javascript?
- 17. Linq: Encontrar elemento en una colección
- 18. Encontrar elemento específico basado en un atributo
- 19. ¿Cómo encontrar un elemento con una ID en JavaFX?
- 20. Encontrar un elemento en una lista <> con C#
- 21. ¿Cómo encontrar el índice de un elemento en una lista?
- 22. Encontrar valores faltantes en una matriz numpy
- 23. Vaciar una matriz en Java/procesamiento
- 24. IOS - encontrar un objeto complejo en una matriz
- 25. Encontrar un valor inusual en una matriz, list
- 26. Encontrar una coincidencia en un campo de matriz
- 27. PHP agregar un elemento de una matriz
- 28. Cómo presionar condicionalmente un elemento en una matriz observable?
- 29. ¿Cómo obtener el índice de un elemento en una matriz?
- 30. ¿Cómo selecciono un elemento aleatorio de una matriz en Python?
Eso es bastante corto, pero este caso de uso es lo suficientemente común como para que realmente deberían haber agregado una función al lenguaje – Casebash
Tenga cuidado de no usar eso con matrices primitivas. –
@Tom: ¿Por qué no? ¿No funciona? – Casebash