Domande taggate «java-stream»

Usa questo tag per domande relative all'uso dell'API Stream. È stato introdotto in Java 8 e supporta operazioni in stile funzionale su flussi di valori, come pipeline di filtro-riduzione mappa su raccolte.

9
Perché Stream <T> non implementa Iterable <T>?
In Java 8 abbiamo la classe Stream &lt;T&gt; , che curiosamente ha un metodo Iterator&lt;T&gt; iterator() Quindi ti aspetteresti che implementa l'interfaccia Iterable &lt;T&gt; , che richiede esattamente questo metodo, ma non è così. Quando voglio iterare su uno Stream usando un ciclo foreach, devo fare qualcosa del genere public …


7
Ignora i duplicati durante la produzione di mappe utilizzando flussi
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); Ottengo java.lang.IllegalStateException: Duplicate keyquando viene trovato un elemento duplicato. È possibile ignorare tale eccezione quando si aggiungono valori alla mappa? Quando c'è un duplicato, semplicemente dovrebbe continuare ignorando quella chiave duplicata.
257 java  java-8  java-stream 

3
Perché Iterable <T> non fornisce i metodi stream () e parallelStream ()?
Mi chiedo perché l' Iterableinterfaccia non fornisca i metodi stream()e parallelStream(). Considera la seguente classe: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } È un'implementazione di una mano in quanto puoi …

3
Java 8 lambdas, Function.identity () o t-> t
Altre informazioni su Stack Overflow su Stack Overflow : Altre informazioni su Java 8, versioni successive - Function.identity () Functionили t-&gt; t? T? T? T? T? T? T? T? T? T? T Ho una domanda sull'uso del Function.identity()metodo. Immagina il seguente codice: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, …

12
Utilizzo di Java 8 opzionale con Stream :: flatMap
Il nuovo framework e gli amici del flusso Java 8 creano un codice java molto conciso, ma mi sono imbattuto in una situazione apparentemente semplice che è difficile da fare in modo conciso. Considera un List&lt;Thing&gt; thingse metodo Optional&lt;Other&gt; resolve(Thing thing). Voglio mappare le Things su se Optional&lt;Other&gt;ottenere il primo …

5
Perché i flussi Java sono una tantum?
A differenza di C # IEnumerable, in cui una pipeline di esecuzione può essere eseguita tutte le volte che vogliamo, in Java un flusso può essere "ripetuto" solo una volta. Qualsiasi chiamata a un'operazione terminale chiude il flusso, rendendolo inutilizzabile. Questa "caratteristica" toglie molta potenza. Immagino che la ragione di …

4
Java 8 Streams: filtri multipli vs. condizioni complesse
A volte vuoi filtrare un Streamcon più di una condizione: myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... oppure potresti fare lo stesso con una condizione complessa e una singola filter : myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... La mia ipotesi è che il secondo approccio …

19
Filtra Java Stream su 1 e solo 1 elemento
Sto cercando di usare Java 8 Streams per trovare elementi in a LinkedList. Voglio garantire, tuttavia, che esiste una e una sola corrispondenza ai criteri di filtro. Prendi questo codice: public static void main(String[] args) { LinkedList&lt;User&gt; users = new LinkedList&lt;&gt;(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new User(3, "User3")); …

5
.Min () e .max () di Java 8 stream: perché viene compilato?
Nota: questa domanda proviene da un link non attivo che era una precedente domanda SO, ma qui va ... Vedi questo codice ( nota: so che questo codice non "funzionerà" e che Integer::comparedovrebbe essere usato - l'ho appena estratto dalla domanda collegata ): final ArrayList &lt;Integer&gt; list = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); …
215 java  java-8  java-stream 



4
Java 8 Stream e operazioni su array
Ho appena scoperto le nuove funzionalità del flusso Java 8. Provenendo da Python, mi chiedevo se ora ci fosse un modo pulito per eseguire operazioni su array come il summing, moltiplicando due array in modo "una linea pitonica"? Grazie


19
Limitare un flusso di un predicato
Esiste un'operazione di flusso Java 8 che limita un (potenzialmente infinito) Stream fino a quando il primo elemento non riesce a corrispondere a un predicato? In Java 9 possiamo usare takeWhilecome nell'esempio seguente per stampare tutti i numeri meno di 10. IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; …
187 java  java-8  java-stream 

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.