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.

8
Como converter um iterador em um fluxo?
Estou procurando uma maneira concisa de converter um Iteratorpara um Streamou mais especificamente para "visualizar" o iterador como um fluxo. Por motivos de desempenho, gostaria de evitar uma cópia do iterador em uma nova lista: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = …
468 java  iterator  java-8 

8
Java 8 Iterable.forEach () vs loop foreach
Como fazer o armazenamento de dados em Stack Overflow no local : Local foreach para Iterable.foreach no Java 8: por que? Qual das seguintes opções é a melhor prática no Java 8? Java 8: joins.forEach(join -> mIrc.join(mSession, join)); Java 7: for (String join : joins) { mIrc.join(mSession, join); } Eu …

27
Java 8 Distinto por propriedade
No Java 8, como filtrar uma coleção usando o método Stream API, verificando a distinção de uma propriedade de cada objeto? Por exemplo, tenho uma lista de Personobjetos e desejo remover pessoas com o mesmo nome, persons.stream().distinct(); Usarei a verificação de igualdade padrão para um Personobjeto, então preciso de algo …




18
Por que o Java 8's Optional não deve ser usado em argumentos
Eu li em muitos sites. Opcional deve ser usado apenas como um tipo de retorno e não usado em argumentos de método. Estou lutando para encontrar uma razão lógica. Por exemplo, eu tenho um pedaço de lógica que possui 2 parâmetros opcionais. Portanto, acho que faria sentido escrever minha assinatura …
392 java  java-8  optional 

22
Existe uma maneira concisa de iterar em um fluxo com índices no Java 8?
Existe uma maneira concisa de iterar em um fluxo enquanto tiver acesso ao índice no fluxo? String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"}; List<String> nameList; Stream<Integer> indices = intRange(1, names.length).boxed(); nameList = zip(indices, stream(names), SimpleEntry::new) .filter(e -> e.getValue().length() <= e.getKey()) .map(Entry::getValue) .collect(toList()); o que parece bastante decepcionante em comparação com …
382 java  java-8  java-stream 



14
Como defino um método que usa um lambda como parâmetro no Java 8?
No Java 8, os métodos podem ser criados como expressões Lambda e podem ser passados ​​por referência (com um pouco de trabalho oculto). Existem muitos exemplos online, com lambdas sendo criadas e usadas com métodos, mas não há exemplos de como criar um método usando um lambda como parâmetro. Qual …
363 java  lambda  java-8 

14
Diferença entre final e efetivamente final
Estou brincando com lambdas no Java 8 e me deparei com um aviso local variables referenced from a lambda expression must be final or effectively final. Eu sei que quando eu uso variáveis ​​dentro da classe anônima, elas devem ser finais na classe externa, mas ainda assim - qual é …


5
Por que "final" não é permitido nos métodos de interface do Java 8?
Um dos recursos mais úteis do Java 8 são os novos defaultmétodos nas interfaces. Existem essencialmente duas razões (podem existir outras) pelas quais elas foram introduzidas: Fornecendo implementações padrão reais. Exemplo:Iterator.remove() Permitindo a evolução da API do JDK. Exemplo:Iterable.forEach() Do ponto de vista de um designer de API, eu gostaria …

12
Como negar um predicado de referência de método
No Java 8, você pode usar uma referência de método para filtrar um fluxo, por exemplo: Stream<String> s = ...; long emptyStrings = s.filter(String::isEmpty).count(); Existe uma maneira de criar uma referência de método que é a negação de uma existente, ou seja, algo como: long nonEmptyStrings = s.filter(not(String::isEmpty)).count(); Eu poderia …
331 java  predicate  java-8  negate 

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.