1
00:00:00,210 --> 00:00:03,180
Veamos el ordenar ordenar por un campo y una dirección.

2
00:00:03,270 --> 00:00:07,140
Bueno, lo primero, acá tienen que retornar la lista, es decir, el DataSource.

3
00:00:07,320 --> 00:00:10,350
Así que lo dejamos retornado, pero lo tenemos que ordenar.

4
00:00:10,440 --> 00:00:12,590
Entonces acá también un DataSource.

5
00:00:12,930 --> 00:00:15,840
Cualquier implementación de un list tiene el método short.

6
00:00:16,170 --> 00:00:17,150
Entonces Short.

7
00:00:17,340 --> 00:00:21,960
Y acá recibe una implementación de una interfaz funcional con parato.

8
00:00:22,140 --> 00:00:26,070
Y podemos comparar, por ejemplo, en este caso objetos del tipo clientes.

9
00:00:26,190 --> 00:00:31,860
Pero el genérico podemos implementar y comparar, ordenar cualquier tipo de objeto.

10
00:00:32,070 --> 00:00:33,360
Entonces vamos a colocar хотя.

11
00:00:33,600 --> 00:00:39,690
Acá hay dos formas, puede ser con clase anónima, pero también como es una interfaz con parato funcional,

12
00:00:39,780 --> 00:00:40,800
podemos utilizar expresiones.

13
00:00:40,800 --> 00:00:46,950
Lanta Ya, pero primero vamos a implementar esta interfaz con carácter de forma automática, utilizando

14
00:00:46,950 --> 00:00:48,630
una clase, una implementación anónima.

15
00:00:48,840 --> 00:00:50,850
Rectifican New con Prater.

16
00:00:50,940 --> 00:00:53,190
La interfaz es una interfaz funcional.

17
00:00:53,280 --> 00:00:59,670
De hecho, acá dice funcional interfaces se fijan y además tienen un tipo genérico acá, en nuestro

18
00:00:59,670 --> 00:01:00,860
caso cliente.

19
00:01:01,620 --> 00:01:03,270
Acá indicamos el tipo cliente.

20
00:01:03,420 --> 00:01:10,170
Entonces estamos indicando que vamos a ordenar comparar dos objetos cliente le vamos a llamar a al cliente

21
00:01:10,320 --> 00:01:12,740
uno y ve al cliente dos.

22
00:01:13,020 --> 00:01:13,500
Qué mejor?

23
00:01:13,800 --> 00:01:16,470
Bien, entonces lo primero, ordenar por dirección.

24
00:01:16,560 --> 00:01:21,960
Entonces, según la dirección vamos a ordenar en un lado, sino hacia el otro lado, es decir, damos

25
00:01:21,960 --> 00:01:22,380
vuelta.

26
00:01:22,530 --> 00:01:30,000
Entonces utilizando if dir y es igual a dirección punto asc o ascendente.

27
00:01:30,540 --> 00:01:31,100
Perfecto.

28
00:01:31,530 --> 00:01:36,420
Una forma else if dir igual desc.

29
00:01:38,100 --> 00:01:39,270
Acá sería desc.

30
00:01:39,510 --> 00:01:42,990
Recuerden que tenemos solamente dos opciones ascendente o descendente.

31
00:01:43,190 --> 00:01:44,850
Bueno, implementamos esta segunda forma.

32
00:01:45,870 --> 00:01:46,160
Miletto.

33
00:01:46,770 --> 00:01:50,960
Ven acá al principio un entero resultado.

34
00:01:51,230 --> 00:01:52,170
Resultado la comparación.

35
00:01:52,290 --> 00:01:59,490
Recuerden que cuando se compara utilizando el método comparto comparar con retorna un entero que corresponde

36
00:01:59,580 --> 00:02:02,190
al orden en la tabla y único.

37
00:02:02,310 --> 00:02:02,820
Se acuerdan?

38
00:02:02,940 --> 00:02:04,770
Entonces tenemos que retornar ese entero.

39
00:02:04,890 --> 00:02:11,070
Ese resultado por defecto lo dejamos en cero y acá retornamos ratón acá abajo.

40
00:02:11,700 --> 00:02:16,860
Resultado bien, comencemos con ASC, pero también depende de un campo.

41
00:02:16,950 --> 00:02:18,030
Qué campo vamos a ordenar?

42
00:02:18,300 --> 00:02:24,550
Pues por ejemplo Leydi, el nombre o el apellido, pudiéramos utilizar un if también o un switch.

43
00:02:25,980 --> 00:02:29,610
Entonces por ejemplo, un switch campo del tipo String.

44
00:02:30,210 --> 00:02:30,840
Perfecto.

45
00:02:31,030 --> 00:02:34,810
Y acá comenzamos cuando el caso el keys del tipo String.

46
00:02:35,010 --> 00:02:40,170
Por ejemplo, el campo Heidy pudiera utilizar la forma funcional con la flecha.

47
00:02:40,320 --> 00:02:41,190
Entonces si se cumple.

48
00:02:41,240 --> 00:02:48,060
Bueno, resultado igual de forma ascendente porque estamos dentro de ASC.

49
00:02:48,210 --> 00:02:58,050
Acá ascendente sería A. Compara con B entonces a punto yeta Heidy punto comparto con B punto que Tatty

50
00:03:00,120 --> 00:03:00,630
y listo.

51
00:03:00,870 --> 00:03:12,300
Veamos otro caso que es por ejemplo nombre igual bajamos resultado igual a punto get nombre en este

52
00:03:12,300 --> 00:03:24,270
caso punto comparto con B get nombre y así también con apellido.

53
00:03:31,860 --> 00:03:33,200
Comparto tu V.

54
00:03:33,720 --> 00:03:34,410
Punto.

55
00:03:34,860 --> 00:03:35,570
En qué te apellido?

56
00:03:37,720 --> 00:03:38,370
Bien, lo tenemos.

57
00:03:38,440 --> 00:03:45,450
Entonces primero el Heidy, comparamos el Heidy idea con el Heidy DB, luego el nombre de A con el nombre

58
00:03:45,450 --> 00:03:48,150
de B, luego la pilló de A con el cepillo DB.

59
00:03:48,930 --> 00:03:52,920
Ahí tenemos de forma ascendente y por el campo descendente.

60
00:03:53,010 --> 00:03:57,870
Bueno, lo voy a copiar tal cual lo copiamos el switch y lo pegamos acá.

61
00:03:58,950 --> 00:04:00,570
Ahora cambiamos o damos vuelta.

62
00:04:00,900 --> 00:04:05,760
Acá sería B por ejemplo, y acá A B.

63
00:04:07,460 --> 00:04:10,230
Ve acá abajo y acá a?

64
00:04:14,720 --> 00:04:15,200
Y listo.

65
00:04:15,560 --> 00:04:22,010
Ahí lo tengo implementado, se fija bueno, utilizando la interfaz con Pareto, el método con par comparar

66
00:04:22,490 --> 00:04:25,730
y luego implementamos el compartid por cada campo.

67
00:04:26,230 --> 00:04:31,670
En este interfaz se acuerdan que vimos por ahí la interfaz comparable que la implementamos en la clase,

68
00:04:31,700 --> 00:04:34,640
por ejemplo en la clase cliente acá.

69
00:04:34,820 --> 00:04:39,350
Bueno, en realidad es similar, pero el problema es que acá lo podríamos hacer de esta forma, pero

70
00:04:39,440 --> 00:04:45,920
dentro de la clase no tenemos el atributo para saber si es ascendente o por el campo ordenar por un

71
00:04:45,920 --> 00:04:47,480
campo en particular, no?

72
00:04:47,570 --> 00:04:54,080
Acá el método compar tu de la clase solamente podemos comparar de forma predeterminada por un campo

73
00:04:54,260 --> 00:04:58,790
o por un conjunto campo, pero no poder seleccionar, por ejemplo que compare por nombre propio por

74
00:04:58,790 --> 00:04:59,180
Heidy.

75
00:04:59,480 --> 00:05:02,480
Eso lo hacemos de forma más personalizada.

76
00:05:03,260 --> 00:05:10,850
Acá utilizando el comprador se fijan porque casi tenemos el campo y acá la dirección y la podemos utilizar

77
00:05:10,940 --> 00:05:16,580
en la implementación en esta implementación o clase anónima al vuelo que implementamos al vuelo.

78
00:05:17,150 --> 00:05:21,950
Bien, preví otra forma y vimos que esta interfaz es funcional.

79
00:05:22,520 --> 00:05:25,940
Anotada con el decorador functional interface.

80
00:05:26,030 --> 00:05:29,960
Por lo tanto se puede utilizar como una expresión lanta.

81
00:05:30,110 --> 00:05:30,890
Simplificar.

82
00:05:31,310 --> 00:05:31,850
Cómo?

83
00:05:32,420 --> 00:05:36,830
Solamente colocando el método, el método y su implementación y ni siquiera el nombre.

84
00:05:36,830 --> 00:05:39,070
Solamente de forma transparente.

85
00:05:39,180 --> 00:05:41,270
Cómo es una interfaz que tiene un solo método?

86
00:05:41,390 --> 00:05:42,200
Bueno, es importante.

87
00:05:42,200 --> 00:05:47,660
Después vamos a ver expresiones Lanta en detalle, pero básicamente una expresión Lanta es una interface,

88
00:05:47,780 --> 00:05:49,190
una interfaz funcional.

89
00:05:49,220 --> 00:05:54,710
Por supuesto que tienes que cumplir la condición de que tenga un solo método abstracto, nada más.

90
00:05:54,770 --> 00:06:00,950
Un solo método en este caso bueno, comprar, comparar y como tiene uno solo lo podemos omitir acá.

91
00:06:01,130 --> 00:06:01,910
Y eso es lo que vamos a hacer.

92
00:06:02,090 --> 00:06:03,500
Vamos a modificar esto.

93
00:06:03,590 --> 00:06:07,790
De hecho, voy a quitar esto porque todo esto asume de forma automática esto.

94
00:06:07,790 --> 00:06:10,910
Lo de quitar perfecto, como tiene un solo método.

95
00:06:12,140 --> 00:06:14,100
Se asume que es el compar?

96
00:06:14,280 --> 00:06:15,380
Entonces estamos utilizando el con.

97
00:06:16,340 --> 00:06:18,590
Y acá va la flecha.

98
00:06:18,770 --> 00:06:20,060
Y también quitamos los tipos.

99
00:06:20,510 --> 00:06:25,310
Bueno, el tipo puede ir acá de fija cliente, pero es redundante.

100
00:06:25,820 --> 00:06:30,860
De hecho, podría quitar acá el cliente, porque también se asume por defecto de forma automática que

101
00:06:30,860 --> 00:06:32,420
estamos ordenando cliente acá.

102
00:06:33,320 --> 00:06:35,100
Entonces simplemente A y B.

103
00:06:35,420 --> 00:06:36,760
Ay B son del tipo cliente.

104
00:06:36,900 --> 00:06:37,940
Este de forma automática.

105
00:06:37,940 --> 00:06:40,460
Esta presión lanta lo asocia el tipo cliente.

106
00:06:40,820 --> 00:06:43,700
En esto se fijan Kyoma simple y acá me sobra.

107
00:06:43,850 --> 00:06:47,660
Me sobra una llave porque quitamos la clase anónima de final.

108
00:06:47,810 --> 00:06:51,500
Es un método nomás le quitamos la llave debajo.

109
00:06:52,900 --> 00:06:58,060
Entonces short una prisión blanda, que es básicamente una función que pasamos por argumento.

110
00:06:58,180 --> 00:07:01,450
Esta función está definida en una interfaz funcional.

111
00:07:01,510 --> 00:07:04,810
Como vimos, un solo método abstracto sin implementar.

112
00:07:05,110 --> 00:07:10,060
Bueno, no se preocupen, porque después vamos a ver más detalles sobre expresiones Landau, interfaces

113
00:07:10,060 --> 00:07:11,390
funcionales, en fin.

114
00:07:11,560 --> 00:07:16,270
Pero esta sería la forma de vejan hoy b cliente A, cliente B y listo.

115
00:07:16,360 --> 00:07:19,750
Y lo comparamos mucho más ordenado y simple.

116
00:07:21,100 --> 00:07:22,960
Para resumir, bueno, después vamos a ver más detalles.

117
00:07:23,050 --> 00:07:26,320
No me quiero adelantar mucho, pero tengan en cuenta una prisión linda.

118
00:07:26,410 --> 00:07:32,510
Es una interfaz funcional que tiene un solo método abstracto y está decorada anotada con funcional interface.

119
00:07:32,710 --> 00:07:38,050
Bien, continuemos con paginación desde After, pero la verdad es que mucho más simple que todo acá,

120
00:07:38,320 --> 00:07:40,150
mucho más DataSource.

121
00:07:41,080 --> 00:07:48,790
Punto por acá tenemos sub lista sub lista, un subconjunto de la lista de acá tenemos el DD from index

122
00:07:48,910 --> 00:07:55,570
hasta el tú index está molesto desde Koma hasta eso todo.

123
00:07:55,960 --> 00:08:02,020
Entonces vamos a tener un subconjunto Página12 de un rango, desde un índice hasta un cierto índice.

124
00:08:02,110 --> 00:08:02,770
Está molesto.

125
00:08:02,830 --> 00:08:04,870
Continuamos en la siguiente clase.
