Perguntas com a marcação «java-8»

Use esta tag para perguntas específicas do Java 8, que é a versão 8 (número interno 1.8) da plataforma Java, lançada em 18 de março de 2014. Na maioria dos casos, você também deve especificar a tag java.

5
Retornar de lambda forEach () em java
Estou tentando alterar alguns loops for-each para forEach()métodos lambda para descobrir as possibilidades das expressões lambda. O seguinte parece ser possível: ArrayList<Player> playersOfTeam = new ArrayList<Player>(); for (Player player : players) { if (player.getTeam().equals(teamName)) { playersOfTeam.add(player); } } Com lambda forEach() players.forEach(player->{if (player.getTeam().equals(teamName)) {playersOfTeam.add(player);}}); Mas o próximo não funciona: for …

6
Como verificar se um Java 8 Stream está vazio?
Como posso verificar se a Streamestá vazio e lançar uma exceção se não estiver, como uma operação não terminal? Basicamente, estou procurando algo equivalente ao código abaixo, mas sem materializar o fluxo intermediário. Em particular, a verificação não deve ocorrer antes que o fluxo seja realmente consumido por uma operação …

1
completablefuture join vs get
Qual é a diferença entre CompletableFuture.get()e CompletableFuture.join()? Abaixo está o meu código: List<String> process() { List<String> messages = Arrays.asList("Msg1", "Msg2", "Msg3", "Msg4", "Msg5", "Msg6", "Msg7", "Msg8", "Msg9", "Msg10", "Msg11", "Msg12"); MessageService messageService = new MessageService(); ExecutorService executor = Executors.newFixedThreadPool(4); List<String> mapResult = new ArrayList<>(); CompletableFuture<?>[] fanoutRequestList = new CompletableFuture[messages.size()]; int …

8
Agrupar por vários nomes de campo em java 8
Encontrei o código para agrupar os objetos por algum nome de campo do POJO. Abaixo está o código para isso: public class Temp { static class Person { private String name; private int age; private long salary; Person(String name, int age, long salary) { this.name = name; this.age = age; …
95 java  java-8 



5
Por que Collections.sort usa Mergesort, mas Arrays.sort não?
Estou usando o JDK-8 (x64). Para Arrays.sort(primitivos), encontrei o seguinte na documentação do Java: O algoritmo de classificação é um Quicksort Dual-Pivot de Vladimir Yaroslavskiy, Jon Bentley e Joshua Bloch. Para Collections.sort(objetos), encontrei este "Timsort": Esta implementação é um mergesort estável, adaptável e iterativo ... Esta implementação despeja a lista …

5
Uso adequado de Optional.ifPresent ()
Estou tentando entender o ifPresent()método da OptionalAPI em Java 8. Eu tenho uma lógica simples: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Mas isso resulta em um erro de compilação: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Claro que posso fazer algo assim: if(user.isPresent()) { doSomethingWithUser(user.get()); } Mas isso é exatamente como um …
94 java  lambda  java-8  optional 


15
Java 8 Stream com processamento em lote
Tenho um grande arquivo que contém uma lista de itens. Eu gostaria de criar um lote de itens, fazer uma solicitação HTTP com esse lote (todos os itens são necessários como parâmetros na solicitação HTTP). Posso fazer isso facilmente com um forloop, mas como amante do Java 8, quero tentar …


6
Usando streams para coletar em TreeSet com comparador personalizado
Trabalhando em Java 8, tenho um TreeSetdefinido assim: private TreeSet<PositionReport> positionReports = new TreeSet<>(Comparator.comparingLong(PositionReport::getTimestamp)); PositionReport é uma classe bastante simples definida assim: public static final class PositionReport implements Cloneable { private final long timestamp; private final Position position; public static PositionReport create(long timestamp, Position position) { return new PositionReport(timestamp, position); …

6
Implementação de HashMap Java 8
De acordo com o seguinte documento de link: Java HashMap Implementation Estou confuso com a implementação de HashMap(ou melhor, um aprimoramento em HashMap). Minhas dúvidas são: primeiramente static final int TREEIFY_THRESHOLD = 8; static final int UNTREEIFY_THRESHOLD = 6; static final int MIN_TREEIFY_CAPACITY = 64; Por que e como essas …

5
Por que não consigo mapear inteiros para strings ao fazer streaming de uma matriz?
Este código funciona (obtido no Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Este não pode ser compilado: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA me diz que tenho um …

3
_ (sublinhado) é uma palavra-chave reservada
Acabei de substituir sa seguinte expressão lambda por _: s -> Integer.parseInt(s) O compilador Eclipse diz: '_' não deve ser usado como um identificador, uma vez que é uma palavra-chave reservada do nível de origem 1.8 em diante. Eu não encontrei nenhuma explicação em JLS §3.9 Estrutura Lexical / Palavras-chave.
92 java  lambda  java-8 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.