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

Use esta tag para perguntas relacionadas ao uso da API de Stream. Foi introduzido no Java 8 e suporta operações de estilo funcional em fluxos de valores, como pipelines de filtro-mapa-redução em coleções.

9
Por que o Stream <T> não implementa o Iterable <T>?
No Java 8, temos a classe Stream &lt;T&gt; , que curiosamente tem um método Iterator&lt;T&gt; iterator() Então, você esperaria implementar a interface Iterable &lt;T&gt; , que requer exatamente esse método, mas esse não é o caso. Quando quero iterar em um Stream usando um loop foreach, tenho que fazer algo …


7
Ignorar duplicatas ao produzir mapa usando fluxos
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); Recebo java.lang.IllegalStateException: Duplicate keyquando um elemento duplicado é encontrado. É possível ignorar essa exceção ao adicionar valores ao mapa? Quando houver duplicado, ele simplesmente deve continuar ignorando essa chave duplicada.
257 java  java-8  java-stream 

3
Por que o Iterable <T> não fornece os métodos stream () e parallelStream ()?
Eu estou querendo saber por que a Iterableinterface não fornece os métodos stream()e parallelStream(). Considere a seguinte classe: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } É uma implementação de uma …

3
Java 8 lambdas, Function.identity () ou t-> t
Como criar um número de pilha no Stack Overflow em um arquivo : propriedades no Java 8, por exemplo, - Function.identity () ou t -&gt; t? Eu tenho uma pergunta sobre o uso do Function.identity()método. Imagine o seguinte código: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) …

12
Usando o Java 8 opcional com Stream :: flatMap
A nova estrutura de fluxo do Java 8 e os amigos criam um código java muito conciso, mas me deparei com uma situação aparentemente simples que é difícil de fazer de forma concisa. Considere a List&lt;Thing&gt; thingse método Optional&lt;Other&gt; resolve(Thing thing). Quero mapear os Thingto Optional&lt;Other&gt;s e obter o primeiro …

5
Por que o Java Streams é único?
Diferentemente dos C # IEnumerable, em que um pipeline de execução pode ser executado quantas vezes quisermos, em Java, um fluxo pode ser 'iterado' apenas uma vez. Qualquer chamada para uma operação do terminal fecha o fluxo, tornando-o inutilizável. Esse 'recurso' tira muito poder. Imagino que o motivo disso não …

4
Java 8 Streams: vários filtros vs. condição complexa
Às vezes, você deseja filtrar um Streamcom mais de uma condição: myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... ou você pode fazer o mesmo com uma condição complexa e uma única filter : myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... Meu palpite é que a segunda …

19
Filtrar o Java Stream para 1 e apenas 1 elemento
Estou tentando usar o Java 8 Streams para encontrar elementos em um LinkedList. Quero garantir, no entanto, que haja uma e apenas uma correspondência com os critérios de filtro. Pegue este código: public static void main(String[] args) { LinkedList&lt;User&gt; users = new LinkedList&lt;&gt;(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new …

5
.Min () e .max () do Java 8 stream: por que isso compila?
Nota: esta pergunta se origina de um link morto que era uma pergunta anterior do SO, mas aqui vai ... Veja este código ( nota: eu sei que esse código não "funcionará" e que Integer::comparedeve ser usado - eu apenas o extraí da pergunta vinculada ): final ArrayList &lt;Integer&gt; list …
215 java  java-8  java-stream 



4
Java 8 Stream e operação em matrizes
Acabei de descobrir os novos recursos de fluxo do Java 8. Vindo de Python, eu queria saber se havia agora uma maneira elegante de fazer operações em matrizes como soma, multiplicando duas matrizes de uma maneira "uma linha pitônica"? obrigado


19
Limitar um fluxo por um predicado
Existe uma operação de fluxo do Java 8 que limita um (potencialmente infinito) Streamaté que o primeiro elemento falhe ao corresponder a um predicado? No Java 9, podemos usar takeWhilecomo no exemplo abaixo para imprimir todos os números menores que 10. IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; …
187 java  java-8  java-stream 

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.