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.
Sembra che non riesca a capire come Java componga le operazioni dello stream in una pipeline dello stream. Quando si esegue il seguente codice public static void main(String[] args) { StringBuilder sb = new StringBuilder(); var count = Stream.of(new String[]{"1", "2", "3", "4"}) .map(sb::append) .count(); System.out.println(count); System.out.println(sb.toString()); } La console …
Ho del codice Java che fornisce oggetti da items. Li limita in base a maxNumber: items.stream() .map(this::myMapper) .filter(item -> item != null) .limit(maxNumber) .collect(Collectors.toList()); Funziona correttamente, ma la domanda è questa: c'è un modo per saltare il limite quando il maxNumber == 0? So che potrei farlo: if (maxNumber == …
Sto cercando di capire perché il seguente programma Java dà un OutOfMemoryError, mentre il programma corrispondente senza .parallel(). System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); Ho due domande: Qual è l'output previsto di questo programma? Senza .parallel()sembra che questo semplicemente sum(1+2+3+...)emetta, …
Ho una mappa Map<K, V>e il mio obiettivo è quello di rimuovere i valori duplicati e restituire la stessa struttura Map<K, V>. Nel caso in cui venga trovato il valore duplicato, deve essere selezionata una chiave ( k) tra le due chiavi ( k1e k1) che contengono questi valori, per …
Stavo cercando di convertire un array int in List e ho preso la strada sconosciuta di utilizzo di Java 8 Stream e ho trovato questo Arrays.stream(arr).boxed().collect(Collectors.toList()); Ho ancora difficoltà a comprendere appieno questa linea, principalmente, Perché Collectors.toList()in questo caso restituisce un'interfaccia di ArrayList<Integer>implementazione List? Perché no LinkedList<Integer>o qualsiasi altra classe …
Voglio utilizzare a Streamper parallelizzare l'elaborazione di un insieme eterogeneo di file JSON memorizzati in remoto di numero sconosciuto (il numero di file non è noto in anticipo). Le dimensioni dei file possono variare notevolmente, da 1 record JSON per file fino a 100.000 record in alcuni altri file. Un …
Chiuso . Questa domanda deve essere più focalizzata . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che si concentri su un problema solo modificando questo post . Chiuso 4 giorni fa . AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record -> new Record(recordNumber.incrementAndGet(), …
Ho un elenco di colori come questo: Rosa, blu, rosso, blu, grigio, verde, viola, nero ... ecc List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); Ci sono alcune operazioni intermedie come il filtraggio di alcuni colori di frutta, ora sono rimasto con risultati filtrati dove voglio che …
Per la pulizia di un elenco di dati, ho creato un metodo che accetta l'elenco di dati e l'elenco delle operazioni di pulizia da eseguire. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return …
Ho trovato un quiz sull'API Java 8 Stream del metodo peek come di seguito Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); L'output è Fred Jim Sono confuso su come funziona questo stream? Il mio risultato atteso dovrebbe essere Fred Jim Sheila Il metodo peek () è un'operazione intermedia ed …
Ho il seguente codice: Stream<String> lines = reader.lines(); Se la stringa del pugno è uguale, "email"voglio rimuovere la prima stringa dallo Stream. Per altre stringhe dello stream non ho bisogno di questo controllo. Come potrei raggiungerlo? PS Certo che posso trasformarlo in elenco, quindi utilizzare la vecchia scuola per il …
Sto avendo la mappa hash con i valori seguenti, in valori che ho datato come tipo di dati stringa. Vorrei confrontare tutte le date disponibili nella mappa ed estrarre solo un valore-chiave che ha una data molto recente. Vorrei confrontare con valori e non chiavi. Ho incluso il codice qui …
Ho un Map<String,List<String>>e voglio che si trasformi in Map<String,List<Long>>perché ognuno Stringnell'elenco rappresenta un Long: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); Il mio problema principale è che ognuno Stringpotrebbe non rappresentare correttamente a Long; potrebbe esserci qualche problema. Long::valueOfpuò sollevare eccezioni. In …
Voglio convertire: Map<String, Map<String, List<Map<String, String>>>> inputMap per: Map<String, Map<String, CustomObject>> customMap inputMapviene fornito nella configurazione ed è pronto ma devo customMapformattarlo. CustomObject verrà derivato List<Map<String, String>>dall'uso di poche righe di codice in una funzione. Ho provato un modo normale di iterare la mappa di input e copiare i valori …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.