Utilizzare questo tag per domande specifiche su Java 8 che è la versione 8 (numero interno 1.8) della piattaforma Java, rilasciata il 18 marzo 2014. Nella maggior parte dei casi, è necessario specificare anche il tag java.
Sto giocando con pigre operazioni funzionali in Java SE 8, e voglio mapun indice isu una coppia / tupla (i, value[i]), quindi filterbasato sul secondo value[i]elemento, e infine output solo gli indici. Devo ancora soffrire questo: qual è l'equivalente della coppia C ++ <L, R> in Java? nell'audace nuova era …
Quando eseguo l'iterazione su una raccolta utilizzando il nuovo zucchero sintattico di Java 8, ad esempio myStream.forEach(item -> { // do something useful }); Questo non equivale al frammento di "vecchia sintassi" qui sotto? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); Questo …
Sto usando Java Lambda per ordinare un elenco. come posso ordinarlo al contrario? Ho visto questo post , ma voglio usare java 8 lambda. Ecco il mio codice (ho usato * -1) come hack Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, File o2) { int …
In Java 8, c'è ciò Stream.collectche consente le aggregazioni sulle raccolte. In Kotlin, questo non esiste allo stesso modo, tranne forse come una raccolta di funzioni di estensione nello stdlib. Ma non è chiaro quali siano le equivalenze per i diversi casi d'uso. Ad esempio, nella parte superiore di JavaDoc …
Ho una raccolta di BigDecimals (in questo esempio a LinkedList) che vorrei aggiungere insieme. È possibile utilizzare i flussi per questo? Ho notato che la Streamclasse ha diversi metodi Stream::mapToInt Stream::mapToDouble Stream::mapToLong Ognuno dei quali ha un sum()metodo conveniente . Ma, come sappiamo, floate l' doublearitmetica è quasi sempre una …
Supponiamo che io abbia una classe e un metodo class A { void foo() throws Exception() { ... } } Ora vorrei chiamare foo per ogni istanza di Arecapitato da uno stream come: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Domanda: come gestisco correttamente …
Questo è un esempio reale di un'API di librerie di terze parti, ma semplificato. Compilato con Oracle JDK 8u72 Considera questi due metodi: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } Entrambi riportano un avviso "non controllato" - …
Mentre cercavo un po 'di codice mi sono imbattuto nell'operatore freccia, che cosa fa esattamente? Pensavo che Java non avesse un operatore freccia. return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); Dettagli : Java 6, Collezione Apache Commons, IntelliJ 12 Aggiornamento / Risposta: Si scopre che IntelliJ …
Cerco di trovare un modo semplice nell'API dello stream Java 8 per fare il raggruppamento, ne esco con questo modo complesso! List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, List<String>> collect = list.stream().collect( Collectors.groupingBy(o -> o)); System.out.println(collect); List<String[]> collect2 = collect .entrySet() .stream() .map(e -> new String[] { e.getKey(), …
Ho un problema a provare le espressioni Lambda di Java 8. Di solito funziona bene, ma ora ho metodi che lanciano IOException. È meglio se guardi il seguente codice: class Bank{ .... public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); Stream<String> ss = …
Sto cercando di utilizzare un java.lang.function.Functionnel mio codice java 8 base, ma continuo a ottenere il seguente errore in Intellij. Utilizzo dell'API documentato come @since 1.6+ Questa ispezione trova tutti gli usi dei metodi che hanno il tag @since nella loro documentazione. Ciò può essere utile quando lo sviluppo viene …
Posso aggiungere stream o elementi extra, in questo modo: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); E posso aggiungere nuove cose mentre vado, in questo modo: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Ma questo è brutto, perché concatè statico. Se concatfosse …
Java 8 introduce importanti nuove funzionalità linguistiche come le espressioni lambda. Questi cambiamenti nella lingua sono accompagnati da cambiamenti così significativi nel bytecode compilato che ne impedirebbero l'esecuzione su una macchina virtuale Java 7 senza usare un retrotranslator?
Supponiamo di avere un metodo che restituisce una vista di sola lettura in un elenco di membri: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Supponiamo inoltre che tutto il …
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.