Sto provando la ricerca sequenziale utilizzando gli stream Java 8 e le espressioni lambda. Qui è il mio codiceTrova tutti gli indici di un elemento all'interno di un elenco utilizzando l'API dello stream
List<Integer> list = Arrays.asList(10, 6, 16, 46, 5, 16, 7);
int search = 16;
list.stream().filter(p -> p == search).forEachOrdered(e -> System.out.println(list.indexOf(e)));
Output: 2
2
So list.indexOf(e)
stampa sempre l'indice della prima occorrenza. Come posso stampare tutti gli indici?
non credo che si può fare con questo tipo di struttura. Una volta filtrato, hai perso le informazioni dell'indice. Se dopo questo hai stampato indici, otterresti indici all'interno dell'elenco filtrato. –
Possibile duplicato di http://stackoverflow.com/q/18552005/1407656 o http://stackoverflow.com/q/22793006/1407656 – toniedzwiedz
@Tom cosa è la query nel post specificato. quando provo questo dando errore di compilazione alla query. – mallikarjun