Java Array Indexof
-
Ottieni l’indice di un elemento in un array di tipi
Integer
in Java - Ottieni l’indice di un elemento array utilizzando Java 8 Stream API in Java
-
Ottieni l’indice di un elemento array utilizzando
ArrayUtils.indexOf()
in Java
Questo articolo introduce come ottenere l’indice di un array in Java utilizzando tecniche diverse.
Ottieni l’indice di un elemento in un array di tipi Integer
in Java
Non esiste un metodo indexOf()
per un array in Java, ma un ArrayList
viene fornito con questo metodo che restituisce l’indice dell’elemento specificato. Per accedere alla funzione indexOf()
, creiamo prima un array di Integer
e poi lo convertiamo in una lista usando Arrays.asList()
.
Si noti che usiamo una classe wrapper Integer
invece di un primitivo int
perché asList()
accetta solo classi wrapper, ma restituiscono il risultato come un tipo di dati primitivo. Possiamo controllare il seguente esempio, dove specifichiamo l’elemento cioè 8 al metodo indexOf()
per ottenere il suo indice. Il risultato che otteniamo da getIndex
è del tipo int
.
import java.util.Arrays;
public class ArrayIndexOf {
public static void main(String[] args) {
Integer[] array1 = {2, 4, 6, 8, 10};
int getIndex = Arrays.asList(array1).indexOf(8);
System.out.println("8 is located at " + getIndex + " index");
}
}
Produzione:
8 is located at 3 index
Ottieni l’indice di un elemento array utilizzando Java 8 Stream API in Java
Possiamo usare l’API Stream per filtrare gli elementi dell’array e ottenere la posizione dell’elemento specificato. IntStream
è un’interfaccia che consente a un int
primitivo di utilizzare le funzioni Stream come filter
e range
.
range()
è un metodo di IntStream
che restituisce gli elementi dalla posizione iniziale fino alla fine dell’array. Ora usiamo filter()
che accetta un predicato come argomento. Usiamo i -> elementToFind == array1[i]
come predicato dove i
è il valore ricevuto da range()
e elementToFind == array1[i]
è la condizione per controllare se elementToFind
corrisponde all’elemento corrente di array1
.
findFirst()
restituisce il primo elemento e orElse()
restituisce -1 se la condizione fallisce.
import java.util.stream.IntStream;
public class ArrayIndexOf {
public static void main(String[] args) {
int[] array1 = {1, 3, 5, 7, 9};
int elementToFind = 3;
int indexOfElement = IntStream.range(0, array1.length)
.filter(i -> elementToFind == array1[i])
.findFirst()
.orElse(-1);
System.out.println("Index of " + elementToFind + " is " + indexOfElement);
}
}
Produzione:
Index of 3 is 1
Ottieni l’indice di un elemento array utilizzando ArrayUtils.indexOf()
in Java
Questo esempio utilizza la classe ArrayUtls
inclusa nella Apache Commons Library. Usiamo la seguente dipendenza per importare le funzioni di libreria nel nostro progetto.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
Usiamo la funzione indexOf()
della classe ArrayUtils
per trovare l’indice dell’array. indexOf()
accetta due argomenti, il primo argomento è l’array e il secondo argomento è l’elemento di cui vogliamo trovare l’indice.
import org.apache.commons.lang3.ArrayUtils;
public class ArrayIndexOf {
public static void main(String[] args) {
int[] array1 = {1, 3, 5, 7, 9};
int elementToFind = 9;
int indexOfElement = ArrayUtils.indexOf(array1, elementToFind);
System.out.println("Index of " + elementToFind + " is " + indexOfElement);
}
}
Produzione:
Index of 9 is 4
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn