Veamos el ordenar ordenar por un campo y una dirección.
Bueno, lo primero, acá tienen que retornar la lista, es decir, el DataSource.
Así que lo dejamos retornado, pero lo tenemos que ordenar.
Entonces acá también un DataSource.
Cualquier implementación de un list tiene el método short.
Entonces Short.
Y acá recibe una implementación de una interfaz funcional con parato.
Y podemos comparar, por ejemplo, en este caso objetos del tipo clientes.
Pero el genérico podemos implementar y comparar, ordenar cualquier tipo de objeto.
Entonces vamos a colocar хотя.
Acá hay dos formas, puede ser con clase anónima, pero también como es una interfaz con parato funcional,
podemos utilizar expresiones.
Lanta Ya, pero primero vamos a implementar esta interfaz con carácter de forma automática, utilizando
una clase, una implementación anónima.
Rectifican New con Prater.
La interfaz es una interfaz funcional.
De hecho, acá dice funcional interfaces se fijan y además tienen un tipo genérico acá, en nuestro
caso cliente.
Acá indicamos el tipo cliente.
Entonces estamos indicando que vamos a ordenar comparar dos objetos cliente le vamos a llamar a al cliente
uno y ve al cliente dos.
Qué mejor?
Bien, entonces lo primero, ordenar por dirección.
Entonces, según la dirección vamos a ordenar en un lado, sino hacia el otro lado, es decir, damos
vuelta.
Entonces utilizando if dir y es igual a dirección punto asc o ascendente.
Perfecto.
Una forma else if dir igual desc.
Acá sería desc.
Recuerden que tenemos solamente dos opciones ascendente o descendente.
Bueno, implementamos esta segunda forma.
Miletto.
Ven acá al principio un entero resultado.
Resultado la comparación.
Recuerden que cuando se compara utilizando el método comparto comparar con retorna un entero que corresponde
al orden en la tabla y único.
Se acuerdan?
Entonces tenemos que retornar ese entero.
Ese resultado por defecto lo dejamos en cero y acá retornamos ratón acá abajo.
Resultado bien, comencemos con ASC, pero también depende de un campo.
Qué campo vamos a ordenar?
Pues por ejemplo Leydi, el nombre o el apellido, pudiéramos utilizar un if también o un switch.
Entonces por ejemplo, un switch campo del tipo String.
Perfecto.
Y acá comenzamos cuando el caso el keys del tipo String.
Por ejemplo, el campo Heidy pudiera utilizar la forma funcional con la flecha.
Entonces si se cumple.
Bueno, resultado igual de forma ascendente porque estamos dentro de ASC.
Acá ascendente sería A. Compara con B entonces a punto yeta Heidy punto comparto con B punto que Tatty
y listo.
Veamos otro caso que es por ejemplo nombre igual bajamos resultado igual a punto get nombre en este
caso punto comparto con B get nombre y así también con apellido.
Comparto tu V.
Punto.
En qué te apellido?
Bien, lo tenemos.
Entonces primero el Heidy, comparamos el Heidy idea con el Heidy DB, luego el nombre de A con el nombre
de B, luego la pilló de A con el cepillo DB.
Ahí tenemos de forma ascendente y por el campo descendente.
Bueno, lo voy a copiar tal cual lo copiamos el switch y lo pegamos acá.
Ahora cambiamos o damos vuelta.
Acá sería B por ejemplo, y acá A B.
Ve acá abajo y acá a?
Y listo.
Ahí lo tengo implementado, se fija bueno, utilizando la interfaz con Pareto, el método con par comparar
y luego implementamos el compartid por cada campo.
En este interfaz se acuerdan que vimos por ahí la interfaz comparable que la implementamos en la clase,
por ejemplo en la clase cliente acá.
Bueno, en realidad es similar, pero el problema es que acá lo podríamos hacer de esta forma, pero
dentro de la clase no tenemos el atributo para saber si es ascendente o por el campo ordenar por un
campo en particular, no?
Acá el método compar tu de la clase solamente podemos comparar de forma predeterminada por un campo
o por un conjunto campo, pero no poder seleccionar, por ejemplo que compare por nombre propio por
Heidy.
Eso lo hacemos de forma más personalizada.
Acá utilizando el comprador se fijan porque casi tenemos el campo y acá la dirección y la podemos utilizar
en la implementación en esta implementación o clase anónima al vuelo que implementamos al vuelo.
Bien, preví otra forma y vimos que esta interfaz es funcional.
Anotada con el decorador functional interface.
Por lo tanto se puede utilizar como una expresión lanta.
Simplificar.
Cómo?
Solamente colocando el método, el método y su implementación y ni siquiera el nombre.
Solamente de forma transparente.
Cómo es una interfaz que tiene un solo método?
Bueno, es importante.
Después vamos a ver expresiones Lanta en detalle, pero básicamente una expresión Lanta es una interface,
una interfaz funcional.
Por supuesto que tienes que cumplir la condición de que tenga un solo método abstracto, nada más.
Un solo método en este caso bueno, comprar, comparar y como tiene uno solo lo podemos omitir acá.
Y eso es lo que vamos a hacer.
Vamos a modificar esto.
De hecho, voy a quitar esto porque todo esto asume de forma automática esto.
Lo de quitar perfecto, como tiene un solo método.
Se asume que es el compar?
Entonces estamos utilizando el con.
Y acá va la flecha.
Y también quitamos los tipos.
Bueno, el tipo puede ir acá de fija cliente, pero es redundante.
De hecho, podría quitar acá el cliente, porque también se asume por defecto de forma automática que
estamos ordenando cliente acá.
Entonces simplemente A y B.
Ay B son del tipo cliente.
Este de forma automática.
Esta presión lanta lo asocia el tipo cliente.
En esto se fijan Kyoma simple y acá me sobra.
Me sobra una llave porque quitamos la clase anónima de final.
Es un método nomás le quitamos la llave debajo.
Entonces short una prisión blanda, que es básicamente una función que pasamos por argumento.
Esta función está definida en una interfaz funcional.
Como vimos, un solo método abstracto sin implementar.
Bueno, no se preocupen, porque después vamos a ver más detalles sobre expresiones Landau, interfaces
funcionales, en fin.
Pero esta sería la forma de vejan hoy b cliente A, cliente B y listo.
Y lo comparamos mucho más ordenado y simple.
Para resumir, bueno, después vamos a ver más detalles.
No me quiero adelantar mucho, pero tengan en cuenta una prisión linda.
Es una interfaz funcional que tiene un solo método abstracto y está decorada anotada con funcional interface.
Bien, continuemos con paginación desde After, pero la verdad es que mucho más simple que todo acá,
mucho más DataSource.
Punto por acá tenemos sub lista sub lista, un subconjunto de la lista de acá tenemos el DD from index
hasta el tú index está molesto desde Koma hasta eso todo.
Entonces vamos a tener un subconjunto Página12 de un rango, desde un índice hasta un cierto índice.
Está molesto.
Continuamos en la siguiente clase.