1
00:00:00,270 --> 00:00:03,670
P Continuemos con otro ejemplo de Trichet, pero con una clase propia nuestra.

2
00:00:03,690 --> 00:00:05,610
Por ejemplo, la clase alumno.

3
00:00:05,910 --> 00:00:14,460
Entonces vamos a crear un РАМКАХ en Zeth o en ejemplos de lo mismo NEW Por acá un package modelo perfecto.

4
00:00:14,500 --> 00:00:16,470
Y acá vamos a tener una clase.

5
00:00:16,560 --> 00:00:19,770
Alumno, por ejemplo, con el nombre y una nota.

6
00:00:20,790 --> 00:00:21,660
Entonces alumno.

7
00:00:23,610 --> 00:00:24,810
Con algunos atributos

8
00:00:28,410 --> 00:00:31,110
nombre y alguna nota.

9
00:00:31,290 --> 00:00:34,320
Bueno, pues es del tipo dobl para manejar decimal o enteros.

10
00:00:34,350 --> 00:00:37,440
Si queremos que la nota sea como un ranking con valor entero, como queramos.

11
00:00:37,590 --> 00:00:42,750
La idea comparar y poder ordenar, por ejemplo 3 de nombre a través de la nota a los alumnos.

12
00:00:42,840 --> 00:00:43,560
Entonces es lo mismo.

13
00:00:44,370 --> 00:00:52,740
Nota bien constructor bueno y lletra cetera generated gué transceptor ok.

14
00:00:52,830 --> 00:00:53,370
Los dos.

15
00:00:58,520 --> 00:00:59,300
Constructor.

16
00:01:01,370 --> 00:01:02,110
Con los dos.

17
00:01:03,360 --> 00:01:05,680
Ok, y también podremos tener un constructor vacío.

18
00:01:11,450 --> 00:01:17,360
Lento y quizás un toString para poder imprimir, para que sea más simple imprimir el objeto.

19
00:01:19,680 --> 00:01:21,360
Con el nombre y la nota.

20
00:01:23,970 --> 00:01:24,900
Lo ordenamos.

21
00:01:34,170 --> 00:01:34,520
Listo.

22
00:01:34,650 --> 00:01:38,310
Así nos vamos a crear una clase en Set.

23
00:01:39,400 --> 00:01:40,450
Entonces, Lancet.

24
00:01:43,890 --> 00:01:46,800
Cuando me tomen ejemplo Trichet comparable.

25
00:01:52,000 --> 00:01:52,960
Con el método Main

26
00:01:56,020 --> 00:02:08,380
vamos a crear un set del tipo alumno, importamos de ejemplos modelo perfecto se ha de set alumno igual

27
00:02:09,160 --> 00:02:12,340
new un Trichet perfecto.

28
00:02:12,520 --> 00:02:20,500
Bueno ahora tengo que agregar alumnos lesea punto add mediante constructor new alumno pasamos el nombre

29
00:02:20,510 --> 00:02:35,470
una nota por ejemplo a pato con una nota 5 add new alumno Hakata por ejemplo con nota 6

30
00:02:40,240 --> 00:02:44,530
otro más Lucy una nota 4.

31
00:02:50,830 --> 00:02:51,490
Nota 7.

32
00:02:51,490 --> 00:02:52,420
Por ejemplo Jano

33
00:02:58,270 --> 00:03:00,460
Andrés con nota 3.

34
00:03:02,410 --> 00:03:06,250
Y por último vamos a tener al alumno 6

35
00:03:08,950 --> 00:03:09,880
con una nota 2.

36
00:03:11,110 --> 00:03:11,360
Listo.

37
00:03:11,530 --> 00:03:15,520
Ahí tenemos nuestro ceto para por ejemplo, quiero imprimir este ceto.

38
00:03:15,730 --> 00:03:18,670
Vamos a imprimir, de-sea y vamos a ver lo que pasa.

39
00:03:19,450 --> 00:03:20,020
Qué sucede?

40
00:03:20,530 --> 00:03:24,940
Entonces vamos a levantar y nos encontramos con un problema, con un error.

41
00:03:25,060 --> 00:03:30,910
Se fijan una excepción y está bien porque complicaba una de las reglas del Trichet que todos los elementos

42
00:03:30,910 --> 00:03:36,520
que se agreguen tienen que ser objetos que implementen la interfaz comparable, es decir, tienen que

43
00:03:36,520 --> 00:03:42,610
ser ordenados y nuestra clase alumno no implementa esta interfaz, por lo tanto, no es un conjunto

44
00:03:42,640 --> 00:03:44,470
ordenado, no lo podemos implementar.

45
00:03:44,920 --> 00:03:47,260
Bueno, sí, podría ser perfectamente bien.

46
00:03:48,380 --> 00:03:52,940
Un jazzed si lo cambiamos a un jazz, no hay problema.

47
00:03:55,060 --> 00:03:57,940
Por ejemplo, esto solamente para explicar.

48
00:03:58,090 --> 00:04:02,950
Para ver semejan le tenemos Zeo con su nota y todo el conjunto.

49
00:04:03,640 --> 00:04:08,650
Pero un Trichet voy a volver atrás con Z se fijan.

50
00:04:08,950 --> 00:04:11,350
Necesitamos implementar esta interfaz y eso lo que vamos a ver.

51
00:04:11,740 --> 00:04:12,490
Ya lo hemos visto.

52
00:04:12,550 --> 00:04:17,400
Hemos visto ejemplo con comparable, implemento comparable.

53
00:04:17,500 --> 00:04:24,910
Se fijan acá el generic alumno para que haga el cast en el método comparto.

54
00:04:25,030 --> 00:04:27,970
Entonces vamos a implementar este método sobre el error.

55
00:04:28,070 --> 00:04:29,560
Implementar método acá.

56
00:04:31,080 --> 00:04:31,920
Compar tu.

57
00:04:33,620 --> 00:04:39,150
Y acá tenemos el alumno ahora, bueno, tenemos que ordenar por algún atributo, ya sea por notas,

58
00:04:39,150 --> 00:04:40,740
por nombre, por defecto, por nombre.

59
00:04:42,080 --> 00:04:48,230
Entonces, por ejemplo, acá dice punto, nombre, punto, comparto.

60
00:04:49,860 --> 00:04:55,830
Objeto o alumno voy a cambiar a A. De alumno a. Punto.

61
00:04:55,890 --> 00:04:56,390
Nombre.

62
00:04:57,610 --> 00:04:58,180
Perfecto.

63
00:04:58,690 --> 00:05:06,370
Y por si acaso, podríamos validar un cierto if si 10 punto nombre fuese null.

64
00:05:07,510 --> 00:05:09,160
Entonces retornamos un cero

65
00:05:11,830 --> 00:05:15,190
nulo, retornamos cero, porque si no lanza un pulpo, intercepten.

66
00:05:15,430 --> 00:05:19,120
Entonces, para evitar ese error ya tenemos vamos a revisar.

67
00:05:19,120 --> 00:05:20,830
Ahora voy a cerrar los demás.

68
00:05:20,830 --> 00:05:23,710
Ejemplo para no confundir bien.

69
00:05:24,890 --> 00:05:25,430
Acá.

70
00:05:26,490 --> 00:05:27,240
Levantamos.

71
00:05:29,520 --> 00:05:30,000
Ahora sí.

72
00:05:30,280 --> 00:05:32,250
A. C. J.

73
00:05:32,310 --> 00:05:32,790
Se fijan.

74
00:05:32,880 --> 00:05:37,290
L p z ordena por nombre que está perfecto.

75
00:05:37,530 --> 00:05:41,160
Ahora, qué pasa si quiero tener por nota en vez de por nombre?

76
00:05:41,400 --> 00:05:47,220
Bueno, si se fijan, acá estamos con un string, pero nota del tipo entero primitivo.

77
00:05:47,490 --> 00:05:51,000
Un detalle importante si es un entero primitivo, por ejemplo, quiero ordenar.

78
00:05:51,090 --> 00:05:53,190
Nota primitivo no puedo.

79
00:05:53,190 --> 00:05:54,000
Sale con Perttu.

80
00:05:55,270 --> 00:05:56,470
De hecho, voy a comentar.

81
00:05:59,050 --> 00:06:00,320
Y vamos a ordenar por nota.

82
00:06:00,620 --> 00:06:03,650
Recuerden que compartir solamente nos permite ordenar por un solo tributo.

83
00:06:04,460 --> 00:06:10,000
Entonces acá primero, bueno, un entero primitivo nunca se nul, así que ni siquiera necesario comprar

84
00:06:10,010 --> 00:06:11,540
con esto no es necesario.

85
00:06:11,690 --> 00:06:12,590
Podría ser cero.

86
00:06:12,680 --> 00:06:14,690
Se fijan entonces para comprar números?

87
00:06:15,080 --> 00:06:15,600
Simple.

88
00:06:15,770 --> 00:06:18,500
Al final sería con un if, no es cierto?

89
00:06:18,620 --> 00:06:20,300
Si 10 nota

90
00:06:23,160 --> 00:06:27,890
es igual a la nota del objeto que se pasa por argumento a punto.

91
00:06:27,890 --> 00:06:29,810
Nota retornamos 0.

92
00:06:30,530 --> 00:06:32,040
Return 0.

93
00:06:32,990 --> 00:06:34,240
Si son iguales 0.

94
00:06:34,460 --> 00:06:35,420
Ahora si.

95
00:06:35,510 --> 00:06:40,160
Nota del objeto en cuestión es mayor que la nota del objeto que se pasa por argumento.

96
00:06:40,280 --> 00:06:41,330
Retornamos 1.

97
00:06:41,930 --> 00:06:43,700
If 10.

98
00:06:43,730 --> 00:06:47,840
Punto Nota si en mayor que a punto.

99
00:06:47,840 --> 00:07:01,520
Nota return 1 hora if dice nota es menor que la nota del alumno que se pasa por argumento a punto.

100
00:07:01,520 --> 00:07:04,580
Nota return menos 1.

101
00:07:05,450 --> 00:07:05,870
Se fijan.

102
00:07:05,960 --> 00:07:07,820
Ahora esto se puede organizar de otra forma.

103
00:07:08,030 --> 00:07:10,340
Siempre es mejor utilizar las llaves.

104
00:07:10,460 --> 00:07:10,970
Se fijan?

105
00:07:11,000 --> 00:07:13,880
Entonces usamos las llaves para separar contexto.

106
00:07:14,420 --> 00:07:17,120
Vamos a bajar acá el punto y coma.

107
00:07:19,070 --> 00:07:20,210
Bajamos bien.

108
00:07:20,240 --> 00:07:22,910
Por un lado tenemos eso y por otro lado tenemos esto acá.

109
00:07:23,120 --> 00:07:25,370
Entonces una llave acá.

110
00:07:25,460 --> 00:07:26,180
Otra llave.

111
00:07:26,450 --> 00:07:27,140
Bajamos.

112
00:07:28,950 --> 00:07:29,670
Perfecto.

113
00:07:29,800 --> 00:07:33,840
Y acá podríamos utilizar un hells, entonces un else if.

114
00:07:36,760 --> 00:07:44,010
Llega, cerramos, pero también se puede seguir optimizando porque bueno, si no se cumple, esto es

115
00:07:44,010 --> 00:07:44,610
lo contrario.

116
00:07:44,640 --> 00:07:47,880
Entonces simplemente Hells y esto lo podríamos quitar.

117
00:07:48,270 --> 00:07:53,700
Te dije que sería redundante, pero lo quería explicar para que vean cuando nota del objeto en cuestión

118
00:07:53,790 --> 00:07:56,490
es mayor que las notas del otro objeto es uno.

119
00:07:56,730 --> 00:07:58,860
Ahora, si en menor es menos 1.

120
00:08:00,310 --> 00:08:00,700
Listo.

121
00:08:01,480 --> 00:08:02,710
Faltó el punto coma.

122
00:08:05,040 --> 00:08:05,540
Ya es hora.

123
00:08:05,760 --> 00:08:08,940
Eso sería de origen para comparar números.

124
00:08:09,300 --> 00:08:09,990
Vamos a probar.

125
00:08:11,190 --> 00:08:12,600
Entonces diría ordenar por nota.

126
00:08:14,600 --> 00:08:15,410
Levantamos.

127
00:08:17,460 --> 00:08:18,480
Zeos 2.

128
00:08:18,540 --> 00:08:19,320
Andrés 3.

129
00:08:19,410 --> 00:08:20,370
Lucí 4.

130
00:08:20,460 --> 00:08:21,640
Pato 5.

131
00:08:21,660 --> 00:08:22,470
Gata 6.

132
00:08:22,590 --> 00:08:23,370
János, 7.

133
00:08:23,910 --> 00:08:30,870
Fijan ahora qué pasa si es del tipo Integer en vez de primitivo de la clase rapper.

134
00:08:31,980 --> 00:08:35,750
También cambiamos el constructor, los lletra ctes.

135
00:08:39,000 --> 00:08:40,980
Se fijan ahora el tipo de la clase?

136
00:08:42,010 --> 00:08:49,330
También porque es un hand boxing, es en forma automática, se convierte el tipo de objeto rapper a

137
00:08:49,330 --> 00:08:50,230
un tipo primitivo.

138
00:08:50,710 --> 00:08:53,500
Entonces se puede comparar acá de forma automática.

139
00:08:53,590 --> 00:08:57,610
Lo trata como primitivos, pero también como un objeto.

140
00:08:58,270 --> 00:08:59,580
Esto se podría comentar.

141
00:09:01,270 --> 00:09:06,880
Y otra forma parecido a esto tendríamos que Duvalier, en caso de que lo queramos comparar como un objeto

142
00:09:06,970 --> 00:09:10,270
del tipo Integer rapper, son distinta alternativa.

143
00:09:10,360 --> 00:09:14,710
Usamos la mano comode if despuntó.

144
00:09:14,920 --> 00:09:16,940
Nota Ahora sí que sí.

145
00:09:17,030 --> 00:09:25,720
Si es igual Anul retornemos será parecido al nombre al string, que también es un objeto.

146
00:09:25,840 --> 00:09:29,710
También podría ser nulo porque un primitivo nunca hace nulo cuando primitivo.

147
00:09:29,740 --> 00:09:30,970
No podemos comparar por nulo.

148
00:09:32,380 --> 00:09:42,520
Y luego Rodón disputo nota, punto, comparto porque es un objeto, es un rapper a punto, nota.

149
00:09:44,580 --> 00:09:51,120
Se fijan similar al compartir con el nombre, pero con nota, ya que de referencia, entonces si levantamos

150
00:09:51,120 --> 00:09:53,220
acá el resultado será idéntico.

151
00:09:54,950 --> 00:09:58,900
Zeos Andrés Luzy 4 5 6 7.

152
00:09:59,090 --> 00:10:06,590
Se dejan cuaquier algo si lo queremos dejar como entero Integer rapper con el compartid o del tipo primitivo

153
00:10:06,620 --> 00:10:09,920
comparando con el mayor, con el menor, el igual.

154
00:10:10,010 --> 00:10:11,720
En fin, distinta alternativa.

155
00:10:12,050 --> 00:10:14,360
Supongamos que queremos comparar con nota.

156
00:10:15,970 --> 00:10:23,320
Y por defecto, así con comparto con la interfaz comparable por defecto así, pero lo quiero modificar.

157
00:10:23,440 --> 00:10:28,150
Ahora quiero que compare por nombre y ascendente o descendente como quiera.

158
00:10:28,250 --> 00:10:35,290
Bueno, en ese sentido en el Trichet nos permite pasar el objeto comparador o con parato se fijan una

159
00:10:35,290 --> 00:10:36,040
prisión blanda.

160
00:10:36,480 --> 00:10:37,260
Acoma B.

161
00:10:37,660 --> 00:10:38,260
Se acuerdan?

162
00:10:38,380 --> 00:10:45,580
La flecha quiere comprar acá lo que queramos, por ejemplo a punto, ya sea por nota, por nombre A

163
00:10:45,640 --> 00:10:50,350
o B, si quiero ascendente o descendente como queramos, por ejemplo.

164
00:10:50,440 --> 00:10:51,670
Bueno, por defecto está con nota.

165
00:10:52,000 --> 00:10:53,150
Ahora quiero comprar por nombre.

166
00:10:53,230 --> 00:10:54,250
Entonces, qué nombre?

167
00:10:54,790 --> 00:10:55,450
Punto.

168
00:10:55,510 --> 00:10:56,270
Comparto.

169
00:10:58,450 --> 00:11:00,130
Punto Geet nombre.

170
00:11:02,410 --> 00:11:05,860
Entonces ahora va a sobreescribir la comparación por nota.

171
00:11:05,980 --> 00:11:07,220
Ahora va a comparar un nombre.

172
00:11:07,540 --> 00:11:09,160
Entonces levantamos.

173
00:11:11,830 --> 00:11:20,000
Se fijan Andrés Catá, Jano perfecto, hasta Zeus, ahora de forma inversa, descendente.

174
00:11:20,330 --> 00:11:21,380
Simplemente cambio la V.

175
00:11:21,500 --> 00:11:22,940
Acá y acá la A.

176
00:11:28,210 --> 00:11:31,780
Zeos, Pato, Lucy Jano se fija así de simple.

177
00:11:32,200 --> 00:11:35,060
Ahora quiere que sea por nota, pero descendente, bueno.

178
00:11:35,170 --> 00:11:36,340
B punto g.

179
00:11:36,460 --> 00:11:38,860
Nota deja también.

180
00:11:45,120 --> 00:11:46,020
Ahora ordena por nota.

181
00:11:46,770 --> 00:11:56,010
Siete seis cinco cuatro tres dos se fijan entonces utilizando comparable o con parato, pasando por

182
00:11:56,010 --> 00:11:57,550
el constructor del Trichet.

183
00:11:57,630 --> 00:11:58,440
Una sobrecarga.

184
00:11:58,980 --> 00:12:02,700
Y otro detalle que quiere explicar que se me fue querido explicar en clase anteriores.

185
00:12:02,850 --> 00:12:08,900
Acá están imprimiendo el Trichet, el set, pero también podría ser una lista, una ArrayList, un linked

186
00:12:08,940 --> 00:12:09,270
list.

187
00:12:09,360 --> 00:12:09,630
En fin.

188
00:12:09,690 --> 00:12:14,770
Pero el string de los colecho por defecto se muestra esta forma con corchete.

189
00:12:15,180 --> 00:12:16,980
Pero obviamente son literales.

190
00:12:17,190 --> 00:12:21,830
Si yo puedo iterar un ser con for con un forillo igual que la lista, se fijan.

191
00:12:21,990 --> 00:12:26,050
Bueno, después vamos a Heyman, detalla incluso con un while utilizando el iterativo.

192
00:12:26,640 --> 00:12:27,540
Es decir, puedo iterar.

193
00:12:27,780 --> 00:12:28,470
No hay ningún problema.

194
00:12:28,580 --> 00:12:29,850
Bien, eso sería el ejemplo.

195
00:12:29,970 --> 00:12:35,340
Entonces finalmente pongo ordenar a nuestro gusto como queramos de forma 70. Descendente utilizando

196
00:12:35,340 --> 00:12:37,860
comparable o comparador los distintos atributos.

197
00:12:37,860 --> 00:12:45,390
Se anota se a nombre del tipo string, del tipo entre lo primitivo o del tipo entero rapper de referencia

198
00:12:45,390 --> 00:12:50,730
como queramos, distintas alternativas según lo que necesitemos y también nuestros propios gustos,

199
00:12:50,820 --> 00:12:53,640
porque al final son distintos caminos que llegan a lo mismo.

200
00:12:53,760 --> 00:12:55,470
Nos vemos en la siguiente clase.
