Come posso sostituire questo codice con nuova API Java Stream:Come generare IntStream utilizzando Java API flusso
int n = someFunction(); // n > 0
for (int i = 3; i * i <= n; i += 2)
System.out.print(i);
ho cercato di utilizzare IntStream.iterate(3, i -> i + 2)
, ma non posso aggiungere condizione di arresto.
Come ho capito, non posso usare il metodo .limit(int)
qui.
Qualche idea?
A quanto pare questo il problema verrà risolto in Java 9: http: //stackoverflow.com/questions/20746429/limit-a-stream-by-a-predicate –
La versione dell'intervallo offre anche un comportamento parallelo molto migliore (per due motivi; il limite parallelo è costoso e iterate() è un modo fondamentalmente sequenziale per generare una sorgente di streaming.) –