Bien, veamos un arreglo de automóvil.
Vamos a cerrar la clase que tenemos motor.
Bueno, toda la clase y dejamos solamente automóvil.
Incluso la clase con el Main también la vamos a cerrar porque la vamos a copiar y la vamos a pegar y
vamos a crear un ejemplo desde cero.
Entonces automóvil, arreglo perfecto y lo vamos a modificar.
Porque la idea de tener un arreglo de automóvil.
Pero no solamente eso también.
Cómo podríamos ordenar, por ejemplo, por fabricante este arreglo?
O bien ordenar por modelo, incluso por nombre del conductor de la persona?
Entonces, por ahí va la idea.
Y eso es lo que cree que aprendemos en esta clase trabajar arreglos de objeto.
Y cómo podemos implementar un orden por atributo?
Pero lo vamos a dejar simple.
Vamos a modificar esto.
Va a mojar solamente los automóvil con el fabricante y también el modelo y el conductor.
Bueno, el motor, el estanque color.
El tipo también lo podemos dejar.
No hay problema.
Pero la rueda, para simplificar, la vamos a quitar.
Entonces vamos a quitar esto, la rueda también.
Nisan.
Vamos a quitar esto de acá también lo quitamos.
Vamos a tener por un lado Subaru, Mazda, Nissan y Nissan 2 y otro automóvil, como quitamos rueda
acá lanza el error.
Así que bueno, recuerden que cuando agregamos un conductor vía constructor también nos pide la rueda
a menos que tengamos otro constructor.
O bien asignar la persona via mtodos.
Ceto lo voy a cortar y por acá ceto nizan 2 set conductor.
Bien, ya tenemos otro automóvil.
Bueno, de hecho Nissan lo voy a cambiar para que sea distinto para el orden.
Por ejemplo, le vamos a colocar Suzuki evitarÃ.
Guitara el motor 1.6.
Tipo Encina tabién el tipo bueno no es camioneta, una pick up en realidad es un tipo cuatro por cuatro
todoterreno que se le conoce como SUV.
Lo podríamos agregar tipo automóvil.
Vamos a crear una nueva constante.
De hecho, nos faltó esa todo terreno se le conoce como sub.
El tipo su?
Que significa todo terreno deportivo
de 5 puerta.
Volvemos y lo agregamos.
Perfecto.
Y acaso Suti
llega también.
Y acá podríamos tener otro más para tener un poco más de variedad.
Audi.
Un Audi, el modelo A3 y lo dejamos ahí sin tanto detalle, si da lo mismo.
Lo que sí podríamos agregar el conductor New Persona, por ejemplo Jano, Jano Pérez.
Bien ahí tenemos varios auto y el arreglo automóvil corchete un arreglo autos igual new automóvil corchete
1 1 2 3 4 5 5 automóvil autos corchete.
En el primero vamos a dejar a Subaru, en el 1 dejamos Amanda, en el 2 dejamos a Nissan, en el 3 dejamos
a Suzuki
y en el 4 vamos a dejar Audi.
Vamos a iterar con un Ford L hipertenso cero hasta el total autos punto link.
Incrementamos perfecto y vamos a mostrar cada elemento.
Entonces shout autos corchete y vamos a imprimir el automóvil.
Pero recuerden, cada elemento de cada automóvil le da a imprimir, por ejemplo, el fabricante y el
modelo.
Pero acá tenemos el string que justamente imprime el Heidy fabricante y el modelo.
Entonces bueno, imprimimos el objeto con el string.
Esa sería la idea.
De hecho, vamos a levantar.
Ya tenemos su oro impreso Amanda, se fijan, imprime en el orden en que se registran, pero quiero
ordenar, quiero ordenar este arreglo por fabricante o por modelo, o incluso por el nombre conductor.
Da lo mismo cómo lo podrían implementar y es el tema que quería ver en esta clase.
Bueno, sabemos que a raíz por ahí lo vimos.
Punto Short podrían ordenar por ejemplo autos, pero vamos a tener un problema.
Bueno, de hecho una marca error.
Pero veamos qué sucede.
Levantamos.
No marca error de sintaxis, pero sí marca error en tiempo de ejecución.
Y es porque no podemos ordenar objetos del tipo TOMÓVIL.
Por qué necesita tener un contrato?
Implementar una interfaz?
Bueno, después vamos a entrar en detalle a lo que es interfaz, pero por ahora solamente vamos a utilizar.
Vamos a implementar este contrato y al final, igual que un contrato en la vida real, si tu cumple
ese contrato, puedes realizar algún trabajo, alguna tarea.
Ejecutar algo acá es lo mismo.
Si tu cumple con el contrato de implementación de una interfaz que son firma de método.
Bueno, si tu cumple con eso, entonces puedes ejecutar algunas actividades, algunos trabajos, por
ejemplo, que los sujetos se pueden ordenar.
Bien, entonces ahora tenemos que implementar esta interfaz se llama comparable.
Entonces nos vamos automóvil.
Por ahora no se preocupen si no comprenden el 100 por ciento, porque después lo vamos a ver más en
detalle.
Pero por ahora usamos la palabra clave.
Implementé
comparable a una interfaz propia de Yaba.
Perfecto.
Acá marco un error y está bien porque nos dice que tenemos que implementar el contrato, que sería el
método comprar con o compare tú.
Entonces nos posicionamos sobre el error y hacemos un clic.
Implementar método acá implemente método.
Eso sería una forma ya otra forma es con hover right o sobreescribir y bajamos al final.
Cualquiera de las dos forma está bien.
Por ejemplo, por acá.
Clic derecho.
Generate.
Implemente métodos acá implemento.
Compare tu lo seleccionamos, ok.
Ahora, si subimos el error, desaparecen.
Está bien, namarca, error.
Entonces, bueno, se van comparando un objeto con otro en el arreglo.
Igual que el string.
Lo primero acá obtengo el tipo objeto, que es el tipo también automóvil, con el cual me voy a comparar
para que se puedan ordenar.
Entonces tengo que hacer un cast acá automóvil, le voy a colocar a de automóvil igual y hacemos el
cast de automóvil o el que recibo por argumento o y hacemos el cast porque estamos recibiendo un tipo
genérico, un tipo object.
Entonces ahora comparamos.
Bueno, y acá tenemos que decidir.
Comparamos por qué?
Por nombre fabricante?
Por el nombre de modelo del automóvil o quiero ordenar con el nombre conductor?
Se fijan?
Bueno, por ejemplo fabricante entonces fabricante punto comparar con o comprar tú y como fabricante
es un string.
Le invocamos el método compartio y ordenamos por el fabricante por ese string o cadena.
No es que estemos ordenando por automóvil, sino por el atributo fabricante y pasamos el objeto o que
se recibe por argumento.
Se fijan al final estamos comparando por string.
Perdón el a porque hicimos cast en el a. a caería a. no al A. El tema es que invocar el fabricante.
A ese lo se comparábamos el fabricante o fabricante de esta clase coloco diss para que sea más explícito,
pero lo mismo Diss fabricante de esta instancia lo comparamos con el fabricante del otro automóvil que
sean, comparando en el arreglo de forma automática cuando lo queremos organizar, ordenar con el sorteo
de la clase Arraiz y estamos listos entonces ahora si volvemos.
Se van a ordenar?
Se fijan Audi, Mazda, Nissan, Subaru Suzuki de forma ascendente de la A hasta la Z, por ejemplo,
nada más que un ejemplo.
Si Subaru le colocó a Z solamente para el ejemplo, no es necesario que lo hagan Subaru con Z y ejecutamos
Subaru pasa al último lugar.
Se fijan que está bien.
Vuelvo atrás.
Control Z.
Esto lo dejamos así.
Entonces está ordenando ahora se podría mejorar un poco más utilizando generic de Yaba.
Después también lo vamos a ver más en detalle.
Por ahora lo vamos a usar, por ejemplo, en automóvil.
Vamos a subir y acá en comparable justamente usar el menor y mayor, menor y mayor, y acá colocamos
automóvil, el mismo tipo que queremos ordenar bien marca un error y está bien, perfecto, porque bajamos.
Y acá colocamos automóvil en vez de objeto.
Y esto le quitamos.
Y en vez de o le voy a colocar a?
Se fijan que mucho mejor.
No es necesario tener que hacer caso, entonces es colocar comparable menor y mayor y el tipo de auto
automóvil.
Automáticamente en el comparable.
Acá se va asignar este tipo de que por defecto genérico, ya que cualquier objeto se podría ordenar,
pero en este caso automóvil.
Por eso indicamos el generic o al generic, pero después vamos a ver más en detalle.
Por ahora sería de esta forma.
Ahora en términos de funcionalidad.
Ningún cambio funciona exactamente igual como estaba antes.
Solamente cambia el código para que sea más legible.
Nada más, y así omitimos el caso.
Bien, acá dice un warning porque nos dice que podríamos usar el for o el foreach, por ejemplo, acá
si hago un click me convierto en forillo y queda mejor también usando un foret automóvil, se fijan?
Y lo dejamos de esa forma.
Ahora, si quiere ordenar, por ejemplo, volvemos, nos vamos a automóvil.
Por modelo.
Cambiamos de fabricante, modelo.
Si hacemos un short por modelo, ahora el que importa el modelo bueno, a BT se fijan A, B y NB.
Entonces ordena por modelo.
Ahora, si quisiera ordenar por persona o conductor.
Bueno, acá sería conductor, se fijan.
Punto.
Tú Strength.
Llega Cómpranos con conductor también.
Punto.
Tus strength.
Llega a ordenar por nombre de conductor, por ejemplo, Nissa nadará, lo tenemos por acá, es bhau.
Después tenemos Audi, que es Sejano.
Después tenemos Suzuki, que es Lalo.
Después tenemos zapato.
No, perdón, tenemos a Lucy.
Y después Zapato se fija.
Hoy ordena por nombre y apellido del conductor.
Pero bien, lo voy a dejar con fabricante control Z fabricante.
Nada más.
Continuamos en la siguiente clase.