Articles of java stream

Recupero di un elenco da un java.util.stream.Stream in Java 8

Stavo giocando con Java 8 lambda per filtrare facilmente le raccolte. Ma non ho trovato un modo conciso per recuperare il risultato come una nuova lista all’interno della stessa dichiarazione. Ecco il mio approccio più conciso finora: List sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List targetLongList = new ArrayList(); sourceLongList.stream().filter(l -> […]

Quali equivalenti di Java 8 Stream.collect sono disponibili nella libreria Kotlin standard?

In Java 8, c’è Stream.collect che consente aggregazioni sulle raccolte. In Kotlin, questo non esiste allo stesso modo, se non come una raccolta di funzioni di estensione nello stdlib. Ma non è chiaro quali siano le equivalenze per diversi casi d’uso. Ad esempio, nella parte superiore di JavaDoc per i servizi di Collectors sono esempi […]

Java 8 Nested (Multi level) group di

Ho poche lezioni come sotto class Pojo { List items; } class Item { T key1; List subItems; } class SubItem { V key2; Object otherAttribute1; } Voglio aggregare gli elementi in base a key1 e per ogni aggregazione, i sottotemi devono essere aggregati da key2 nel seguente modo: Map<T, Map<V, List> Com’è ansible con […]

Files.walk (), calcola la dimensione totale

Sto cercando di calcolare la dimensione dei file sul mio disco. In java-7 questo potrebbe essere fatto usando Files.walkFileTree come mostrato nella mia risposta qui . Tuttavia, se volessi farlo usando i flussi java-8, funzionerà per alcune cartelle, ma non per tutte. public static void main(String[] args) throws IOException { long size = Files.walk(Paths.get(“c:/”)).mapToLong(MyMain::count).sum(); System.out.println(“size=” […]

Perché java.util.Collection non implementa la nuova interfaccia Stream?

Mi ci è voluto un po ‘di tempo per iniziare a guardare al ronzio di java-8 su torrenti e lambda. Quello che mi ha sorpreso è che non è ansible applicare le operazioni di Stream, come .map() , .filter() direttamente su un java.util.Collection . C’è una ragione tecnica per cui l’interfaccia java.util.Collection non è stata […]

In Java 8 c’è una class ByteStream?

Java 8 fornisce specializzazioni Stream per double , int e long : DoubleStream , IntStream e LongStream rispettivamente. Tuttavia, non ho trovato un equivalente per byte nella documentazione . Java 8 fornisce una class ByteStream ?

java.util.stream con ResultSet

Ho poche tabelle con una grande quantità di dati (circa 100 milioni di record). Quindi non posso memorizzare questi dati in memoria, ma mi piacerebbe trasmettere questo set di risultati usando la class java.util.stream e passare questo stream ad un’altra class. Ho letto sugli operatori Stream.of e Stream.Builder , ma sono flussi bufferizzati in memoria. […]

In Java, come faccio a scorrere in modo efficiente ed elegante i discendenti di un nodo dell’albero?

Supponiamo di disporre di una raccolta di oggetti identificati da String s univoci, insieme a una struttura ad Tree class che definisce una gerarchia su di essi. Quella class viene implementata utilizzando una Map dai nodes (rappresentati dai rispettivi ID) alla Collection s dei rispettivi ID figli. class Tree { private Map<String, Collection> edges; // […]

Java 8 stream in ordine inverso

Domanda generale: qual è il modo corretto per invertire un stream? Supponendo che non sappiamo quale tipo di elementi è costituito da tale stream, qual è il modo generico per invertire qualsiasi stream? Domanda specifica: IntStream fornisce il metodo range per generare IntStream.range(-range, 0) interi nell’intervallo specifico IntStream.range(-range, 0) , ora che voglio invertirlo, l’intervallo […]

Qual è la differenza tra Collection.stream (). ForEach () e Collection.forEach ()?

Capisco che con .stream() , posso usare le operazioni a catena come .filter() o usare il stream parallelo. Ma che differenza c’è tra loro se ho bisogno di eseguire piccole operazioni (ad esempio, stampando gli elementi della lista)? collection.stream().forEach(System.out::println); collection.forEach(System.out::println);