Preguntas etiquetadas con java-stream

Use esta etiqueta para preguntas relacionadas con el uso de Stream API. Se introdujo en Java 8 y admite operaciones de estilo funcional en flujos de valores, como las canalizaciones filter-map-reduce en colecciones.

9
¿Por qué Stream <T> no implementa Iterable <T>?
En Java 8 tenemos la clase Stream &lt;T&gt; , que curiosamente tiene un método Iterator&lt;T&gt; iterator() Por lo tanto, es de esperar que implemente la interfaz Iterable &lt;T&gt; , que requiere exactamente este método, pero ese no es el caso. Cuando quiero iterar sobre un Stream usando un bucle foreach, …


7
Ignorar duplicados al producir mapas usando flujos
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); Me sale java.lang.IllegalStateException: Duplicate keycuando se encuentra un elemento duplicado. ¿Es posible ignorar tal excepción al agregar valores al mapa? Cuando hay duplicado, simplemente debe continuar ignorando esa clave duplicada.
257 java  java-8  java-stream 

3
¿Por qué Iterable <T> no proporciona los métodos stream () y parallelStream ()?
Me pregunto por qué la Iterableinterfaz no proporciona los métodos stream()y parallelStream(). Considere la siguiente clase: 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(); } } Es una implementación de una Mano, ya …

3
Java 8 lambdas, Function.identity () o t-> t
На этот вопрос есть ответы на Stack Overflow на русском : Лямбды в Java 8, что лучше использовать - Function.identity () или t-&gt; t? Tengo una pregunta sobre el uso del Function.identity()método. Imagine el siguiente código: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) // &lt;- is …

12
Uso de Java 8 opcional con Stream :: flatMap
El nuevo marco de transmisión Java 8 y sus amigos crean un código Java muy conciso, pero me he encontrado con una situación aparentemente simple que es difícil de hacer de manera concisa. Considere un List&lt;Thing&gt; thingsy método Optional&lt;Other&gt; resolve(Thing thing). Quiero mapear los Things a Optional&lt;Other&gt;s y obtener el …

5
¿Por qué los flujos de Java son únicos?
A diferencia de C # IEnumerable, donde una tubería de ejecución se puede ejecutar tantas veces como queramos, en Java una secuencia se puede 'iterar' solo una vez. Cualquier llamada a una operación de terminal cierra la secuencia y la deja inutilizable. Esta 'característica' le quita mucho poder. Me imagino …

4
Java 8 Streams: múltiples filtros versus condición compleja
A veces desea filtrar un Streamcon más de una condición: myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... o podría hacer lo mismo con una condición compleja y una sola filter : myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... Supongo que el segundo enfoque tiene mejores características …

19
Filtre Java Stream a 1 y solo 1 elemento
Estoy tratando de usar Java 8 Streams para encontrar elementos en a LinkedList. Sin embargo, quiero garantizar que haya una y solo una coincidencia con los criterios de filtro. Toma 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
Java 8 stream's .min () y .max (): ¿por qué esto compila?
Nota: esta pregunta se origina en un enlace inactivo que era una pregunta SO anterior, pero aquí va ... Vea este código ( nota: sé que este código no "funcionará" y que Integer::comparedebería usarse, lo acabo de extraer de la pregunta vinculada ): final ArrayList &lt;Integer&gt; list = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); …
215 java  java-8  java-stream 



4
Java 8 Stream y operación en matrices
Acabo de descubrir las nuevas capacidades de transmisión de Java 8. Viniendo de Python, me preguntaba si ahora había una forma ordenada de hacer operaciones en matrices como sumar, multiplicando dos matrices en una forma "pitónica de una línea". Gracias


19
Limitar una secuencia por un predicado
¿Existe una operación de flujo Java 8 que limite un (potencialmente infinito) Streamhasta que el primer elemento no coincida con un predicado? En Java 9 podemos usar takeWhilecomo en el ejemplo a continuación para imprimir todos los números menores que 10. IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; …
187 java  java-8  java-stream 

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.