Java ha una funzione incorporata che mi consente di cercare linearmente un elemento in una matrice o devo semplicemente usare un ciclo for?Trovare un elemento in una matrice in Java
risposta
C'è un metodo contains
per le liste, così si dovrebbe essere in grado di fare:
Arrays.asList(yourArray).contains(yourObject);
Attenzione: questo potrebbe non fare quello che (o io) si aspetta, si veda il commento di Tom di seguito.
Utilizzare un ciclo for. Non c'è nulla nella matrice. Oppure passa a una classe Collection java.util.
Si potrebbe prendere in considerazione l'utilizzo di un'implementazione Collection
invece di un array piatto.
L'interfaccia Collection
definisce un metodo contains(Object o)
, che restituisce true
/false
.
ArrayList
attuazione definisce un indexOf(Object o)
, che fornisce un indice, ma tale metodo non è in tutte le implementazioni di raccolta.
Entrambi questi metodi richiedono adeguate implementazioni del metodo equals()
, e probabilmente desidera un metodo di hashCode()
correttamente applicato nel caso in cui si utilizza un hash basato Collection
(per esempio HashSet
).
È possibile utilizzare uno dei molti metodi Arrays.binarySearch()
. Tenere presente che l'array deve essere ordinato per primo.
Questa è un'opzione solo gli elementi dell'array sono simili. –
Possiamo solo supporre che questo è il caso, ad es. una serie di ints, stringhe, ecc. Puoi sempre fornire un custom ['Comparator'] (http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html) per ordinare e cerca se necessario. – krock
difficile credere che non ci sia Arrays.search ...
con Java 8, si può fare questo:
int[] haystack = {1, 2, 3};
int needle = 3;
boolean found = Arrays.stream(haystack).anyMatch(x -> x == needle);
avresti bisogno di fare
boolean found = Arrays.stream(haystack).anyMatch(x -> needle.equals(x));
se si sta lavorando con gli oggetti.
- 1. Python: trovare un elemento in una matrice
- 2. Trovare la posizione di un elemento in una matrice bidimensionale?
- 3. Indice di un elemento in una matrice utilizzando Java
- 4. Come verificare se un elemento di matrice esiste in Java
- 5. Trova elementi che circondano un elemento in una matrice
- 6. Verifica se un elemento esiste in una matrice
- 7. Ordina una matrice in Java
- 8. julia seleziona tutti tranne un elemento in matrice/matrice
- 9. Qual è l'algoritmo più veloce per trovare un elemento con più alta frequenza in una matrice
- 10. Come trovare rapidamente l'indice di un elemento in una matrice multidimensionale?
- 11. Trovare un elemento specifico in un NSArrayController
- 12. Come seleziono un elemento casuale da una matrice in Python?
- 13. rimuovere un elemento da una matrice in base al valore
- 14. eliminare un elemento da una matrice in ASP classico
- 15. Come estrarre un elemento particolare da una matrice in BASH?
- 16. Come trovare la permutazione di una specie in Java
- 17. Trovare il massimo comun divisore di una matrice in MATLAB
- 18. trovare un elemento in una lista di tuple
- 19. Come rimuovere ogni altro elemento in una matrice in Swift?
- 20. Controllare se una chiave è l'ultimo elemento in una matrice?
- 21. Trova posizione elemento in una TreeMap Java
- 22. Java: come inizializzare una matrice in Java su una riga?
- 23. copiare una matrice 2d in Java
- 24. Rotazione di una matrice NxN in Java
- 25. Waterline, trovare matrice in serie
- 26. Matrice di associazioni in Java
- 27. come scrivere una matrice in un file Java
- 28. Prendi l'ultimo elemento di una matrice
- 29. Ottenere l'ultimo elemento di una matrice in CoffeeScript
- 30. Convertire una stringa in un elemento XML Java
Questo è piuttosto breve, ma questo caso d'uso è abbastanza comune che avrebbero dovuto aggiungere una funzione nella lingua – Casebash
Attenzione a non usarlo con gli array primitivi. –
@ Tom: Perché no? Non funziona? – Casebash