¿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. Formas efectivas de encontrar un elemento en una matriz Javascript
- 3. ¿Encontrar la posición de un elemento en una matriz bidimensional?
- 4. Encontrar la posición de un elemento en una matriz sencilla
- 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. Cómo encontrar y modificar un valor en una matriz anidada
- 9. índice del elemento en una matriz multidimensional
- 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. Encontrar un elemento en una lista <> con C#
- 20. ¿Cómo encontrar el índice de un elemento en una lista?
- 21. ¿Cómo encontrar un elemento con una ID en JavaFX?
- 22. Encontrar valores faltantes en una matriz numpy
- 23. Vaciar una matriz en Java/procesamiento
- 24. Encontrar una coincidencia en un campo de matriz
- 25. Encontrar un valor inusual en una matriz, list
- 26. IOS - encontrar un objeto complejo en una matriz
- 27. PHP agregar un elemento de una matriz
- 28. Reemplazar un elemento en una matriz de objetos
- 29. Cómo presionar condicionalmente un elemento en una matriz observable?
- 30. ¿Cómo eliminar un elemento de una matriz en PowerShell?
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