<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comentarios en: Java 8 – Streams	</title>
	<atom:link href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Sat, 22 May 2021 04:50:50 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>
		Por: oblancarte		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-11265</link>

		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Sat, 22 May 2021 04:50:50 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-11265</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-11181&quot;&gt;Luis Enrique&lt;/a&gt;.

No hay de que]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-11181">Luis Enrique</a>.</p>
<p>No hay de que</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Luis Enrique		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-11181</link>

		<dc:creator><![CDATA[Luis Enrique]]></dc:creator>
		<pubDate>Fri, 14 May 2021 15:35:54 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-11181</guid>

					<description><![CDATA[Brutal! Muy buen ejemplo y muy bien explicado. Gracias.]]></description>
			<content:encoded><![CDATA[<p>Brutal! Muy buen ejemplo y muy bien explicado. Gracias.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: oblancarte		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-1282</link>

		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Sat, 20 Apr 2019 04:07:07 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-1282</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-1263&quot;&gt;Ricardo&lt;/a&gt;.

Gracias Ricardos :)]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-1263">Ricardo</a>.</p>
<p>Gracias Ricardos 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Ricardo		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-1263</link>

		<dc:creator><![CDATA[Ricardo]]></dc:creator>
		<pubDate>Wed, 17 Apr 2019 04:12:29 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-1263</guid>

					<description><![CDATA[Muchas gracias por tu post, Me gusta mucho tus explicaciones tienes demasiado claro los conceptos y es por eso que es muy fácil entenderte. 
Sigue así, saludos.]]></description>
			<content:encoded><![CDATA[<p>Muchas gracias por tu post, Me gusta mucho tus explicaciones tienes demasiado claro los conceptos y es por eso que es muy fácil entenderte.<br />
Sigue así, saludos.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: oblancarte		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-723</link>

		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Fri, 15 Mar 2019 21:17:41 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-723</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-721&quot;&gt;Henry&lt;/a&gt;.

Hola Henry,

Tu pregunta es interesante!, pero antes de responderla, debemos establecer el contexto, los filtros,sum, etc, de la base de datos son para reducir los elementos recuperados de la base de datos y evitar transmitir por la red un gran número de registros innecesarios. Solo imagina que tienes 10 millones de registros, sería una mala idea traértelos de la base de datos para luego filtrarlos en Java.

Hora bien, lo streams se utiliza para filtrar, agrupar, etc, los registros que ya tenemos en la memoria. Por ejemplo, imagina que tienes una serie de alumnos que están registrados en una clase, y quisieras filtrar todos los alumnos que están en una determinada clase, en tal caso, utilizarías un query que solo te regrese esos alumnos, para reducir el número de registros. Luego imagina que dados esos alumnos que ya recuperaste, quisieras saber cuales sol hombres o mujeres, entonces, como ya están en la memoria, allí puedes usar stream para filtrarlos.

Respondiendo a tu pregunta, usa la base de datos para filtrar el universo de registros, y usa stream para filtrar los registros una vez que ya están en memoria.

saludos.]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-721">Henry</a>.</p>
<p>Hola Henry,</p>
<p>Tu pregunta es interesante!, pero antes de responderla, debemos establecer el contexto, los filtros,sum, etc, de la base de datos son para reducir los elementos recuperados de la base de datos y evitar transmitir por la red un gran número de registros innecesarios. Solo imagina que tienes 10 millones de registros, sería una mala idea traértelos de la base de datos para luego filtrarlos en Java.</p>
<p>Hora bien, lo streams se utiliza para filtrar, agrupar, etc, los registros que ya tenemos en la memoria. Por ejemplo, imagina que tienes una serie de alumnos que están registrados en una clase, y quisieras filtrar todos los alumnos que están en una determinada clase, en tal caso, utilizarías un query que solo te regrese esos alumnos, para reducir el número de registros. Luego imagina que dados esos alumnos que ya recuperaste, quisieras saber cuales sol hombres o mujeres, entonces, como ya están en la memoria, allí puedes usar stream para filtrarlos.</p>
<p>Respondiendo a tu pregunta, usa la base de datos para filtrar el universo de registros, y usa stream para filtrar los registros una vez que ya están en memoria.</p>
<p>saludos.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Henry		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-721</link>

		<dc:creator><![CDATA[Henry]]></dc:creator>
		<pubDate>Fri, 15 Mar 2019 20:39:58 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-721</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-395&quot;&gt;Oscar Blancarte&lt;/a&gt;.

Hola Oscar buenas tardes.

La siguiente consulta es en relación con que es lo recomendable realizar operaciones de filtrado, suma, group by... A nivel de base de datos o utilizar stream un el desarrollo de una aplicación utilizando java EE8 se entiende que con Jdk 1.8.

De que depende y cuáles serían tus sugerencias basado en tu experiencia.

De antemano gracias por tu respuesta.

Saludos.]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-395">Oscar Blancarte</a>.</p>
<p>Hola Oscar buenas tardes.</p>
<p>La siguiente consulta es en relación con que es lo recomendable realizar operaciones de filtrado, suma, group by&#8230; A nivel de base de datos o utilizar stream un el desarrollo de una aplicación utilizando java EE8 se entiende que con Jdk 1.8.</p>
<p>De que depende y cuáles serían tus sugerencias basado en tu experiencia.</p>
<p>De antemano gracias por tu respuesta.</p>
<p>Saludos.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Oscar Blancarte		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-395</link>

		<dc:creator><![CDATA[Oscar Blancarte]]></dc:creator>
		<pubDate>Sat, 07 Jul 2018 20:13:15 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-395</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-394&quot;&gt;Henser Villar Herrera&lt;/a&gt;.

Muy buen artículo ese que me pasaste y me alegro que pudiste resolver el problema, te mando un saludo :)]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-394">Henser Villar Herrera</a>.</p>
<p>Muy buen artículo ese que me pasaste y me alegro que pudiste resolver el problema, te mando un saludo 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Henser Villar Herrera		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-394</link>

		<dc:creator><![CDATA[Henser Villar Herrera]]></dc:creator>
		<pubDate>Sat, 07 Jul 2018 14:12:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-394</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-393&quot;&gt;Oscar Blancarte&lt;/a&gt;.

buen dia, ya logre solucionar reemplazando la instruccion List n1 = elementosMenu.stream() por List n1 = elementosMenu.parallelStream(), segun el articulo en la web de oracle http://www.oracle.com/technetwork/es/articles/java/procesamiento-streams-java-se-8-2763402-esa.html]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-393">Oscar Blancarte</a>.</p>
<p>buen dia, ya logre solucionar reemplazando la instruccion List n1 = elementosMenu.stream() por List n1 = elementosMenu.parallelStream(), segun el articulo en la web de oracle <a href="http://www.oracle.com/technetwork/es/articles/java/procesamiento-streams-java-se-8-2763402-esa.html" rel="nofollow ugc">http://www.oracle.com/technetwork/es/articles/java/procesamiento-streams-java-se-8-2763402-esa.html</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Oscar Blancarte		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-393</link>

		<dc:creator><![CDATA[Oscar Blancarte]]></dc:creator>
		<pubDate>Sun, 17 Jun 2018 04:12:11 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-393</guid>

					<description><![CDATA[En respuesta a &lt;a href=&quot;https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-392&quot;&gt;Henser Villar Herrera&lt;/a&gt;.

Creo que el problema es que no el &lt;code&gt;n2&lt;/code&gt; no puede acceder al elemento &lt;code&gt;m&lt;/code&gt;, pues no es una variable &lt;code&gt;final&lt;/code&gt;, intenta asignar el valor de &lt;code&gt;m&lt;/code&gt; a una variable &lt;code&gt;final&lt;/code&gt; y luego, la utilizas dentro del Stream de &lt;code&gt;n2&lt;/code&gt;. 
No se si me dí a entender, saludos.]]></description>
			<content:encoded><![CDATA[<p>En respuesta a <a href="https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-392">Henser Villar Herrera</a>.</p>
<p>Creo que el problema es que no el <code>n2</code> no puede acceder al elemento <code>m</code>, pues no es una variable <code>final</code>, intenta asignar el valor de <code>m</code> a una variable <code>final</code> y luego, la utilizas dentro del Stream de <code>n2</code>.<br />
No se si me dí a entender, saludos.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Por: Henser Villar Herrera		</title>
		<link>https://www.oscarblancarteblog.com/2017/03/16/java-8-streams-2/#comment-392</link>

		<dc:creator><![CDATA[Henser Villar Herrera]]></dc:creator>
		<pubDate>Sun, 17 Jun 2018 04:03:11 +0000</pubDate>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1574#comment-392</guid>

					<description><![CDATA[que tal oscar, muy interesante tu explicación y concisa, una pregunta, que sucedería si necesito utilizar un stream dentro de otro, me sucede que estoy haciendo una operacion pero me genera error, la verdad soy nuevo utilizando esto de stream, no sesi me puedas colaborar, muchas gracias, coloco my código.

        List n1 = elementosMenu.stream()
                .filter(m -&#062; m.getNivel() == 1)
                .collect(Collectors.toList());
        n1.forEach(m -&#062; {
            
            Stream n2 = todosMenu.filter(m1 -&#062; m1.getNivel() == 2 &#038;&#038; m1.getIndicePadre() == m.getIndice());

            if (m.getTipo() == 1) { // etiqueta
                Label etiqueta = new Label(m.getTitulo(), ContentMode.HTML);
                etiqueta.setPrimaryStyleName(ValoTheme.MENU_SUBTITLE);
                etiqueta.addStyleName(ValoTheme.LABEL_H4);
                etiqueta.setSizeUndefined();
                disenoElementosMenu.addComponent(etiqueta);

            } else if (m.getTipo() == 2) { // enlace
                Button enlace = new Button(m.getTitulo(), (Button.ClickEvent event) -&#062; {
                    Notification.show(&quot;Clic&quot;, &quot;Implementacion de &quot; + m.getTitulo(), Notification.Type.HUMANIZED_MESSAGE);
                });
                enlace.setCaptionAsHtml(true);
                enlace.setPrimaryStyleName(ValoTheme.MENU_ITEM);
                enlace.setIcon(m.getrIcono(), m.getTitulo());
                enlace.setDescription(m.getTitulo());
                disenoElementosMenu.addComponent(enlace);
            }
        });
si no coloco el stream interno n2, se ejecuta sin problemas cuando lo coloco me sale el error: java.lang.IllegalStateException: stream has already been operated upon or closed.]]></description>
			<content:encoded><![CDATA[<p>que tal oscar, muy interesante tu explicación y concisa, una pregunta, que sucedería si necesito utilizar un stream dentro de otro, me sucede que estoy haciendo una operacion pero me genera error, la verdad soy nuevo utilizando esto de stream, no sesi me puedas colaborar, muchas gracias, coloco my código.</p>
<p>        List n1 = elementosMenu.stream()<br />
                .filter(m -&gt; m.getNivel() == 1)<br />
                .collect(Collectors.toList());<br />
        n1.forEach(m -&gt; {</p>
<p>            Stream n2 = todosMenu.filter(m1 -&gt; m1.getNivel() == 2 &amp;&amp; m1.getIndicePadre() == m.getIndice());</p>
<p>            if (m.getTipo() == 1) { // etiqueta<br />
                Label etiqueta = new Label(m.getTitulo(), ContentMode.HTML);<br />
                etiqueta.setPrimaryStyleName(ValoTheme.MENU_SUBTITLE);<br />
                etiqueta.addStyleName(ValoTheme.LABEL_H4);<br />
                etiqueta.setSizeUndefined();<br />
                disenoElementosMenu.addComponent(etiqueta);</p>
<p>            } else if (m.getTipo() == 2) { // enlace<br />
                Button enlace = new Button(m.getTitulo(), (Button.ClickEvent event) -&gt; {<br />
                    Notification.show(&#8220;Clic&#8221;, &#8220;Implementacion de &#8221; + m.getTitulo(), Notification.Type.HUMANIZED_MESSAGE);<br />
                });<br />
                enlace.setCaptionAsHtml(true);<br />
                enlace.setPrimaryStyleName(ValoTheme.MENU_ITEM);<br />
                enlace.setIcon(m.getrIcono(), m.getTitulo());<br />
                enlace.setDescription(m.getTitulo());<br />
                disenoElementosMenu.addComponent(enlace);<br />
            }<br />
        });<br />
si no coloco el stream interno n2, se ejecuta sin problemas cuando lo coloco me sale el error: java.lang.IllegalStateException: stream has already been operated upon or closed.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
