Un detalle importante que se me olvidó mencionar la clase anterior es el Reich Rangos.
Bueno, hay dos tipos el Reich y también está el Clouds.
La diferencia es que el clouds.
Y si de hecho la diferencia es sutil, incluye el segundo argumento.
Es decir, el último elemento del rango se incluye, a diferencia del Reich, que no se incluye, es
excluyente y es incluyente, inclusivo.
La única diferencia.
Por ejemplo, si utilizamos Reich Clouds, el 20 se incluye.
Si utilizamos el Reich, el 20 nos incluye, llega hasta 19 y tenemos como tenemos el Integer Stream.
También está el long stream y el double stream para traja con decimales o con enteros másgrandes.
Bien, eso quería mencionar.
Ahora continuamos.
Quería ver el ejemplo del distinct, pero del tipo objeto usuario.
Entonces vamos a abrir o vamos a copiar el filter single?
Lo copiamos y lo pegamos.
Entonces la vamos a colocar acá.
Distinto usuario, claro, porque ya es distinto que un string.
Acá vimos el ejemplo con el string, una cadena, pero acá del tipo usuario.
Bueno, cómo sería?
Recuerden que los objetos son únicos.
Entonces, claro, tendríamos que implementar el método equals.
Ahora también depende donde coloquemos el distin, porque esto lo colocamos acá.
Se aplicar al string existe, lo colocamos ante el map, pero esto lo colocamos después del MAP.
Se aplica al objeto y eso es lo que quería ver.
Ahora bien, esto acá lo vamos a quitar
nombres punto for hecho perfecto y copiamos esto acá.
Lo pegamos y el PIC lo podemos quitar.
Ya que lo vamos a ver con el forillo para que no esté duplicado, para no mostrar los dos veces bien,
vamos a copiar a Pato.
Lo copiábamos y lo replicamos te fijan hay tres patos.
Vamos a colocar acá el DÍSTICA.
Recuerden que es un operador intermedio.
No hay final.
Entonces lo podemos llamar donde queramos.
Entonces, por supuesto que acá si ejecutamos.
No se repite.
Ah, bueno, saquemos el filters.
También se me olvidó sacrifícate Oishi.
Pato, Paco, se fijan, no duplicÃ pato porque lo aplicamos acá en el estric.
Pero qué pasa si lo movemos acá abajo?
Lo cortamos y lo pegamos acá?
Qué va a pasar?
Casi duplicÃ pato, pato, se fijan.
Porque son instancias distintas.
Recuerda que el usuario crea un objeto independiente si los atributos son iguales.
Los objetos son diferentes.
Cada instancia es distinta.
Entonces, para aplicar el distinct de forma efectiva, tendríamos que implementar el método equals
y comparar, por ejemplo, por el nombre y apellido.
Entonces, si el nombre apellido es exactamente igual, se va a suprimir acá en el distinto vamos a
la clase usuario.
Implementemos el equals por acá, después del toString o antes del Stink nos vamos a Generate.
Y Quarts y Ascot en realidad no interesa el equals y que sea idéntico por estos tres atributos, no
en realidad por el nombre Pío XI, porque Leydi va a ser distinto, entonces al menos el nombre, el
apellido son iguales.
Voy a quitar el Heidy y el objeto se considera como igual, porque si colocamos el Heidy obviamente
debe ser distinto.
Entonces se duplicaría también.
Siguiente El Ascot en este caso no es necesario, pero da lo mismo.
Le ponemos siguiente finalizar Decca.
Tenemos acá lo importante el equals con nombre y apellido.
Recuerden les podemos generar con el IDE tal como lo hicimos ahora con el INTELIGE o bien de forma manual.
También hemos visto cómo crear esto de forma onor, incluso con este mismo código que genera Elida.
Bien, cerramos.
Ahora volvemos a levantar.
Ya no está duplicado.
Pato Guzmán uno solo, entonces por eso también importante el metódicas.
También quería hacer un ejercicio con él sum y con el average, con el promedio, con el summary, con
el resumen estadístico.
Pero acá tenemos el problema, que tenemos un tipo de stream y no es un tipo entero, pero no importa.
Igual lo podemos utilizar, lo podemos implementar.
Veamos cómo voy a copiar este mismo ejemplo.
Vamos a copiar, lo pegamos.
Y además le voy a poner zum.
Perfecto.
Bien.
Qué vamos a sumar?
Pues ser el Heidy que es entero.
Claro, porque tenemos que realizar una operación aritmética sobre algún atributo que sea el tipo entero.
Pero también podría ser sobre el largo del nombre o del apellido o de ambos calcular el link.
Por ejemplo, el link del nombre Peyo, saber cuál nombre es más largo, incluyendo el apellido.
Cuál es más corto?
Cuál es el promedio en cantidad de caracteres?
Tener esa información.
Cómo lo podemos hacer?
Bueno, podríamos utilizar un MAP, pero no es cualquier map.
Un map, tu entero, tu integer.
También tenemos tu doble o tu long, que al final convierte a un double stream a int stream y a un long
string y con el in stream perfecto.
Ahí podemos utilizar el método sumar.
Por ejemplo, los métodos propio de los flujos de enteros o de los int string.
Entonces map.
Tú int.
Acá se emite el usuario, pero lo tengo que convertir a un entero.
Me interesa el link, entonces por cada uno vamos a obtener el link del nombre Lapido.
Entonces u punto tu stink o podría ser el nombre o el apellido.
Si queremos los dos sería el string.
Recuerden que el string lo tenemos implementado por acá.
Que concatena en nombre la villa.
ÂQuÃ nombre apellido?
Entonces tu string punto link, el link retorna entero.
Entonces treme convirtiendo nuestro flujo de usuario a un flujo de entero, pero que tenemos que cambiar.
Entonces, en vez de un stream de usuarios sería bueno, esto lo quitamos.
Int.
Largo.
Nombres.
Importamos.
Perfecto, ahora sería el largo nombres.
Bueno, y acá se imprime la cantidad caracteres de cada uno.
Veamos, por ejemplo, pa Tucumán tiene 11 caracteres, Paco 13, Pepa 14 y así 9 11.
Cómo aplicamos el distinct?
Esto se omite el pato goma que está repetido.
Entonces podemos trabajar con estos enteros y podemos hacer lo mismo que hicimos delante.
Saber cuál es el máximo, el mínimo.
En fin.
Soult, por ejemplo.
La suma.
Largo.
Punto.
Sum.
Ya ha cometido un error y está bien, porque solamente podemos tener un solo o, pero al final llega,
estamos con el foreach.
Entonces en realidad tenemos que usar uno o el otro.
Comentamos el foreach Jassi.
58.
Entonces es importante siempre un operador final.
Eso lo había mencionado bien.
Ahora, si quiero inspeccionar, podríamos copiar.
Esto lo pegamos acá y utilizamos el PIC.
Está la gracia del PIC.
Entonces causamos pic.
A ese entonces, de esta forma tenemos el total y además saber el largo de cada elemento.
Perfecto.
Total.
Shout.
Pero recuerden.
Qué pasa si colocamos largo nombres punto a barat o máximo el count?
Se fijan?
Veamos qué pasa si colocamos el máximo.
También es un operador terminal, por lo tanto, también lanza el error de que fue cerrado el flujo
con el zoom.
No podemos utilizar el máximo, ni el abara, ni el mínimo uno de ellos.
Entonces, cuál sería la solución si quiero mostrar todos?
Bueno, lo mismo que hicimos la clase anterior, vamos a colocar samādhi o int samādhi estadísticas
de acá.
Stats de estadísticas, igual.
Largo.
Nombres.
Punto.
Sanare.
Estadísticas.
Perfecto.
Entonces tenemos un operador terminal que envuelve todo.
Entonces, ahora simplemente utilizamos estadísticas.
Get zum.
Acá también está EditText Jet Max aponer máximo.
Zombi.
Punto to get min.
Shout guet avaras.
El promedio.
En fin, y lo logramos.
Jassi se fijan cada uno.
Luego tenemos el total, la suma completa de todo lo caracteres, el máximo 14 que corresponde a Pepa
Gutiérrez, luego tenemos el mínimo 9 y luego tenemos el promedio en caracteres, una información importante.
Entonces podemos realizar una traza estadística de nuestros elementos, ya sea por algún atributo de
la clase del objeto o bien por algún tipo parámetro del tipo entero o numérico de alguna información,
otro objeto como el largo del nombre Lupillo.
Y así como aplicamos la suma o la estadísticas al largo del string del string nombre pillo, también
percibo de Leidy simplemente cambiando acá.
Geet Heidy.
Cambia todo acá.
Obviamente a sumar los Heidy va a sacar el promedio de los Saidi, se fija un, dos, tres, cuatro,
cinco.
Total 15.
El máximo cinco.
El mínimo di1.
El promedio 3.
Pero bien, vamos a dejar con el link nada más.
Nos vemos en la siguiente clase.