Quando si ottiene un flusso dall'elenco, non modifica l'elenco. Se si desidera ottenere la dimensione del flusso dopo il filtraggio, si chiama count()
su di esso.
long sizeAfterFilter =
locales.stream().filter(l -> l.getLanguage().equals("en")).count();
Se si desidera ottenere un nuovo elenco, basta chiamare .collect(toList())
sul flusso risultante. Se non sei preoccupato di modificare l'elenco, puoi semplicemente utilizzare removeIf
su List
.
locales.removeIf(l -> !l.getLanguage().equals("en"));
Nota che Arrays.asList
restituisce una lista di dimensione fissa in modo che sarà un'eccezione, ma si può avvolgerlo in un ArrayList
, o semplicemente raccogliere il contenuto del flusso filtrato in un List
(risp.) Utilizzando ArrayList
Collectors.toList()
(rispettivamente Collectors.toCollection(ArrayList::new)
).
fonte
2015-03-14 12:36:58
http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –