P Continuemos con otro ejemplo de Trichet, pero con una clase propia nuestra.
Por ejemplo, la clase alumno.
Entonces vamos a crear un РАМКАХ en Zeth o en ejemplos de lo mismo NEW Por acá un package modelo perfecto.
Y acá vamos a tener una clase.
Alumno, por ejemplo, con el nombre y una nota.
Entonces alumno.
Con algunos atributos
nombre y alguna nota.
Bueno, pues es del tipo dobl para manejar decimal o enteros.
Si queremos que la nota sea como un ranking con valor entero, como queramos.
La idea comparar y poder ordenar, por ejemplo 3 de nombre a través de la nota a los alumnos.
Entonces es lo mismo.
Nota bien constructor bueno y lletra cetera generated gué transceptor ok.
Los dos.
Constructor.
Con los dos.
Ok, y también podremos tener un constructor vacío.
Lento y quizás un toString para poder imprimir, para que sea más simple imprimir el objeto.
Con el nombre y la nota.
Lo ordenamos.
Listo.
Así nos vamos a crear una clase en Set.
Entonces, Lancet.
Cuando me tomen ejemplo Trichet comparable.
Con el método Main
vamos a crear un set del tipo alumno, importamos de ejemplos modelo perfecto se ha de set alumno igual
new un Trichet perfecto.
Bueno ahora tengo que agregar alumnos lesea punto add mediante constructor new alumno pasamos el nombre
una nota por ejemplo a pato con una nota 5 add new alumno Hakata por ejemplo con nota 6
otro más Lucy una nota 4.
Nota 7.
Por ejemplo Jano
Andrés con nota 3.
Y por último vamos a tener al alumno 6
con una nota 2.
Listo.
Ahí tenemos nuestro ceto para por ejemplo, quiero imprimir este ceto.
Vamos a imprimir, de-sea y vamos a ver lo que pasa.
Qué sucede?
Entonces vamos a levantar y nos encontramos con un problema, con un error.
Se fijan una excepción y está bien porque complicaba una de las reglas del Trichet que todos los elementos
que se agreguen tienen que ser objetos que implementen la interfaz comparable, es decir, tienen que
ser ordenados y nuestra clase alumno no implementa esta interfaz, por lo tanto, no es un conjunto
ordenado, no lo podemos implementar.
Bueno, sí, podría ser perfectamente bien.
Un jazzed si lo cambiamos a un jazz, no hay problema.
Por ejemplo, esto solamente para explicar.
Para ver semejan le tenemos Zeo con su nota y todo el conjunto.
Pero un Trichet voy a volver atrás con Z se fijan.
Necesitamos implementar esta interfaz y eso lo que vamos a ver.
Ya lo hemos visto.
Hemos visto ejemplo con comparable, implemento comparable.
Se fijan acá el generic alumno para que haga el cast en el método comparto.
Entonces vamos a implementar este método sobre el error.
Implementar método acá.
Compar tu.
Y acá tenemos el alumno ahora, bueno, tenemos que ordenar por algún atributo, ya sea por notas,
por nombre, por defecto, por nombre.
Entonces, por ejemplo, acá dice punto, nombre, punto, comparto.
Objeto o alumno voy a cambiar a A. De alumno a. Punto.
Nombre.
Perfecto.
Y por si acaso, podríamos validar un cierto if si 10 punto nombre fuese null.
Entonces retornamos un cero
nulo, retornamos cero, porque si no lanza un pulpo, intercepten.
Entonces, para evitar ese error ya tenemos vamos a revisar.
Ahora voy a cerrar los demás.
Ejemplo para no confundir bien.
Acá.
Levantamos.
Ahora sí.
A. C. J.
Se fijan.
L p z ordena por nombre que está perfecto.
Ahora, qué pasa si quiero tener por nota en vez de por nombre?
Bueno, si se fijan, acá estamos con un string, pero nota del tipo entero primitivo.
Un detalle importante si es un entero primitivo, por ejemplo, quiero ordenar.
Nota primitivo no puedo.
Sale con Perttu.
De hecho, voy a comentar.
Y vamos a ordenar por nota.
Recuerden que compartir solamente nos permite ordenar por un solo tributo.
Entonces acá primero, bueno, un entero primitivo nunca se nul, así que ni siquiera necesario comprar
con esto no es necesario.
Podría ser cero.
Se fijan entonces para comprar números?
Simple.
Al final sería con un if, no es cierto?
Si 10 nota
es igual a la nota del objeto que se pasa por argumento a punto.
Nota retornamos 0.
Return 0.
Si son iguales 0.
Ahora si.
Nota del objeto en cuestión es mayor que la nota del objeto que se pasa por argumento.
Retornamos 1.
If 10.
Punto Nota si en mayor que a punto.
Nota return 1 hora if dice nota es menor que la nota del alumno que se pasa por argumento a punto.
Nota return menos 1.
Se fijan.
Ahora esto se puede organizar de otra forma.
Siempre es mejor utilizar las llaves.
Se fijan?
Entonces usamos las llaves para separar contexto.
Vamos a bajar acá el punto y coma.
Bajamos bien.
Por un lado tenemos eso y por otro lado tenemos esto acá.
Entonces una llave acá.
Otra llave.
Bajamos.
Perfecto.
Y acá podríamos utilizar un hells, entonces un else if.
Llega, cerramos, pero también se puede seguir optimizando porque bueno, si no se cumple, esto es
lo contrario.
Entonces simplemente Hells y esto lo podríamos quitar.
Te dije que sería redundante, pero lo quería explicar para que vean cuando nota del objeto en cuestión
es mayor que las notas del otro objeto es uno.
Ahora, si en menor es menos 1.
Listo.
Faltó el punto coma.
Ya es hora.
Eso sería de origen para comparar números.
Vamos a probar.
Entonces diría ordenar por nota.
Levantamos.
Zeos 2.
Andrés 3.
Lucí 4.
Pato 5.
Gata 6.
János, 7.
Fijan ahora qué pasa si es del tipo Integer en vez de primitivo de la clase rapper.
También cambiamos el constructor, los lletra ctes.
Se fijan ahora el tipo de la clase?
También porque es un hand boxing, es en forma automática, se convierte el tipo de objeto rapper a
un tipo primitivo.
Entonces se puede comparar acá de forma automática.
Lo trata como primitivos, pero también como un objeto.
Esto se podría comentar.
Y otra forma parecido a esto tendríamos que Duvalier, en caso de que lo queramos comparar como un objeto
del tipo Integer rapper, son distinta alternativa.
Usamos la mano comode if despuntó.
Nota Ahora sí que sí.
Si es igual Anul retornemos será parecido al nombre al string, que también es un objeto.
También podría ser nulo porque un primitivo nunca hace nulo cuando primitivo.
No podemos comparar por nulo.
Y luego Rodón disputo nota, punto, comparto porque es un objeto, es un rapper a punto, nota.
Se fijan similar al compartir con el nombre, pero con nota, ya que de referencia, entonces si levantamos
acá el resultado será idéntico.
Zeos Andrés Luzy 4 5 6 7.
Se dejan cuaquier algo si lo queremos dejar como entero Integer rapper con el compartid o del tipo primitivo
comparando con el mayor, con el menor, el igual.
En fin, distinta alternativa.
Supongamos que queremos comparar con nota.
Y por defecto, así con comparto con la interfaz comparable por defecto así, pero lo quiero modificar.
Ahora quiero que compare por nombre y ascendente o descendente como quiera.
Bueno, en ese sentido en el Trichet nos permite pasar el objeto comparador o con parato se fijan una
prisión blanda.
Acoma B.
Se acuerdan?
La flecha quiere comprar acá lo que queramos, por ejemplo a punto, ya sea por nota, por nombre A
o B, si quiero ascendente o descendente como queramos, por ejemplo.
Bueno, por defecto está con nota.
Ahora quiero comprar por nombre.
Entonces, qué nombre?
Punto.
Comparto.
Punto Geet nombre.
Entonces ahora va a sobreescribir la comparación por nota.
Ahora va a comparar un nombre.
Entonces levantamos.
Se fijan Andrés Catá, Jano perfecto, hasta Zeus, ahora de forma inversa, descendente.
Simplemente cambio la V.
Acá y acá la A.
Zeos, Pato, Lucy Jano se fija así de simple.
Ahora quiere que sea por nota, pero descendente, bueno.
B punto g.
Nota deja también.
Ahora ordena por nota.
Siete seis cinco cuatro tres dos se fijan entonces utilizando comparable o con parato, pasando por
el constructor del Trichet.
Una sobrecarga.
Y otro detalle que quiere explicar que se me fue querido explicar en clase anteriores.
Acá están imprimiendo el Trichet, el set, pero también podría ser una lista, una ArrayList, un linked
list.
En fin.
Pero el string de los colecho por defecto se muestra esta forma con corchete.
Pero obviamente son literales.
Si yo puedo iterar un ser con for con un forillo igual que la lista, se fijan.
Bueno, después vamos a Heyman, detalla incluso con un while utilizando el iterativo.
Es decir, puedo iterar.
No hay ningún problema.
Bien, eso sería el ejemplo.
Entonces finalmente pongo ordenar a nuestro gusto como queramos de forma 70. Descendente utilizando
comparable o comparador los distintos atributos.
Se anota se a nombre del tipo string, del tipo entre lo primitivo o del tipo entero rapper de referencia
como queramos, distintas alternativas según lo que necesitemos y también nuestros propios gustos,
porque al final son distintos caminos que llegan a lo mismo.
Nos vemos en la siguiente clase.