Articles of java stream

Utilizzare il riferimento al metodo con parametro

Ho appena iniziato a imparare i flussi Java e ho dovuto affrontare un problema. Si prega di dare un’occhiata al seguente esempio. Questo fa parte di una class Node: private Map nodes; public Optional child(String name) { return Optional.ofNullable(nodes.get(name)); } private void findChildren(String name, List result) { child(name).ifPresent(result::add); nodes.values().stream() // .map(Node::findChildren(name, result)) // .forEach(Node::findChildren(name, result)) […]

Il modo più efficace per ottenere l’ultimo elemento di un stream

Stream non ha un metodo last() : Stream stream; T last = stream.last(); // No such method Qual è il modo più elegante e / o efficace per ottenere l’ultimo elemento (o null per un stream vuoto)?

Come applicare più predicati a un java.util.Stream?

Come posso applicare più predicati al metodo filter() java.util.Stream’s ? Questo è quello che faccio adesso, ma non mi piace davvero. Ho una Collection di cose e ho bisogno di ridurre il numero di cose in base alla Collection di filtri (predicati): Collection things = someGenerator.someMethod(); List filtered = things.parallelStream().filter(p -> { for (Filter f […]

Java SE 8 ha coppie o tuple?

Sto giocando con le pigre operazioni funzionali in Java SE 8, e voglio map un indice i ad una coppia / tupla (i, value[i]) , quindi filter base al secondo elemento value[i] e alla fine emettere solo gli indici. Devo ancora soffrire questo: qual è l’equivalente della coppia C ++ in Java? nell’audace nuova era […]

Raggruppamento Java 8 usando il collector personalizzato?

Ho la seguente class. class Person { String name; LocalDate birthday; Sex gender; String emailAddress; public int getAge() { return birthday.until(IsoChronology.INSTANCE.dateNow()).getYears(); } public String getName() { return name; } } Mi piacerebbe essere in grado di raggruppare per età e quindi raccogliere l’elenco dei nomi delle persone piuttosto che l’object Persona stesso; tutto in una […]

Invertire un comparatore in Java 8

Ho un ArrayList e voglio ordinarlo in ordine decrescente. Uso per il metodo java.util.stream.Stream.sorted(Comparator) . Ecco una descrizione in base all’API Java: Restituisce un stream costituito dagli elementi di questo stream, ordinati in base al Comparator fornito. questo metodo mi restituisce una sorta di ordine crescente. Quale parametro dovrei cambiare, solo per avere l’ordine decrescente?

C’è un buon modo per estrarre blocchi di dati da un stream java 8?

Io un processo ETL sto recuperando un sacco di entity framework da un archivio di dati di spring. Sto quindi utilizzando un stream parallelo per mappare le quadro a differenti. Posso utilizzare un consumatore per archiviare le nuove entity framework in un altro repository uno per uno o raccoglierle in un elenco e archiviarle in […]

Prodotto cartesiano di flussi in Java 8 come stream (utilizzando solo flussi)

Vorrei creare un metodo che crea un stream di elementi che sono prodotti cartesiani di più flussi dati (aggregati allo stesso tipo alla fine da un operatore binario). Si noti che sia gli argomenti che i risultati sono flussi, non raccolte. Ad esempio, per due flussi di {A, B} e {X, Y} mi piacerebbe che […]

In Stream ridurre il metodo, l’id quadro deve sempre essere 0 per la sum e 1 per la moltiplicazione?

Procedo l’apprendimento di java 8. Ho trovato un comportamento interessante: vediamo l’esempio del codice: // identity value and accumulator and combiner Integer summaryAge = Person.getPersons().stream() //.parallel() //will return surprising result .reduce(1, (intermediateResult, p) -> intermediateResult + p.age, (ir1, ir2) -> ir1 + ir2); System.out.println(summaryAge); e class del modello: public class Person { String name; Integer […]

Java8: sum i valori dal campo specifico degli oggetti in una lista

Supponiamo di avere una class Obj class Obj{ int field; } e di avere una lista di istanze Obj , ad es. List lst . Ora, come posso trovare in Java8 con i flussi la sum dei valori del field campi int dagli oggetti nella lista lst sotto un criterio di filtraggio (ad esempio per […]