lunes, 12 de diciembre de 2011

Bonus Point ArrayList de Autos

Autor: Felipe Andrés Lagos Morapasten
Competencia: Comunicación Oral y Escrita. (Nivel 1)
Palabras Clave: Cliente-Servidor, Java, ArrayList, Colección.

Descripción de la Actividad

Iniciando nuevamente quiero compartir con ustedes la actividad de Bonus Point que me ayuda en la competencia de Comunicación Oral y Escrita, esta tarea de aplicación se realizó para el curso de Desarrollo de Aplicaciones de Cliente -Servidor, siendo representa con el numero 9 de los bonus, esta actividad consiste en crear una colección de tipo ArrayList para autos en este caso objetos de tipo Auto, ya que la colección o lista, su manera de trabajar en mediante el uso de objetos, la difícil de la actividad es agregar dos elementos igual para observar la funcionalidad para este caso.

Solución:

La solución de este bonus point comienza con los ejemplos para la colección, el análisis y diseño de la solución, un diagrama de actividad que nos explica el camino a recorrer de la aplicación y por último la implementación de la lista (Array List en Java).

Paso 1: Ejemplos.

"AE 55","Corola","Toyota", 2008,"123-4" > [P] > “Datos correctamente”
"AE 55","Corola","Toyota",2008,"123-4> [P] > “Datos correctamente a pesar de ser duplicados”
"HB 34","Hummer",”Jeep",200,"123-4> [P] > “Datos Correctamente sin importar que el Rut este repetido”
"TH 34","Corsa XL",”1123", 2020,"879-2> [P] > “No se ingresan porque el modelo no corresponden el tipo de dato”
"RT 74"," Evolución ",”Toyota", 2001,"908-2> [P] > “Datos correctamente”
"RF 00"," +++W ",”Nissan", 1231,"123-2> [P] > “Datos correctamente”
" "," Norte ",”Susuki", 2010,"993-3> [P] > “Datos correctamente”
" V16",”Nissan", 2090,"123-5> [P] > “Faltan datos como la Patente”
" TY 05", 2090,"123-5> [P] > “Faltan datos como el modelo y marca”
05,”Nissan”,”V16”, 2001,"123-5> [P] > “No se ingresan porque la patente no corresponden el tipo de dato”
“AB 15,” ”,” ”, 2001,"123-5> [P] > “Error faltan datos”
“ “, ”  “,”  “,0,” “> [P] > “Error en los Datos, no se ingresan”       
“ “, ”  “,”  “, “ ”,” “ > > [P] > “Error no ingresó datos”                                      
                              
                                           

      Paso 2: Análisis y Diseño.

La solución del problema  es crear una clase de autos con atributos como patente, marca, modelo, año y Rut del propietario con sus respectivos métodos para obtener y modificar estos atributos. Al terminar lo anterior, crear una nueva clase de colección ArrayList donde se guarden los datos de los autos sin importar que estén duplicados a diferencia de TreeSet

Entrada:                                                      Proceso:

Ingresar 8 objetos (Autos)                         Crear la colección ArrayList
con atributos Patente                                Agregar a la colección, los objetos                          
Marca, Modelo, Año, Rut propietario 


  Se han guardados datos en la colección ArrayList que permite datos duplicado como en este caso el ingreso de los mismo atributos para un auto.

        Salida:
Se mostrarán por consola lo que contiene la colección ArrayList.

 
Se muestran todo el contenido de ArrayList.

Paso 3: Especificación en Diagrama de Actividad.

 
Paso 4: Implementación en Java.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class BonusPoint9 {
    public static void main(String[] args) {
        List<Auto> lista = new ArrayList<Auto>();
        Auto obj= new Auto("EA 67","Corola","Toyota",2008,"1234");
        Auto obj2= new Auto("EA 67","Corola","Toyota",2008,"1234");
        Auto obj3= new Auto("QF 33","Corsa XL","Chetvolet",2000,"547-2");
        Auto obj4= new Auto("VB 21","Yaris","Toyota",2010,"946-2");
        Auto obj5= new Auto("PI 19","Evolution","Peugout",2009,"567-2");
        Auto obj6= new Auto("PÑ 10","Hammer","Jeep",2012,"345-6");
        Auto obj7= new Auto("FR 99","Gran Nomade","Susuki",2001,"253-2");
        Auto obj8= new Auto("AF 90","Hammer","Hyundai",2000,"1234");
   
        lista.add(obj);
        lista.add(obj2);
        lista.add(obj3);
        lista.add(obj4);
        lista.add(obj5);
        lista.add(obj6);
        lista.add(obj7);
        lista.add(obj8);
        Iterator it = lista.iterator();// Para poder acceder a la lista con los datos de autos
         System.out.println("ArrayList");
        System.out.println("Autos de la Coleccion");
         
         while(it.hasNext()){
            System.out.println(it.next());}
} //Cierre Main
} // Cierre Clase Bonus

 Clase Auto:
public class Auto implements Comparable {
    String Patente;
    String Modelo;
    String Marca;
    int Anio;
    String Rut;
    Auto()
    {}
    Auto(String RUT) {
        Rut = RUT;  }
    Auto(String PATENTE, String MODELO, String MARCA, int ANIO, String RUT)
    {    Patente=PATENTE;
        Modelo=MODELO;
        Marca=MARCA;
        Anio=ANIO;
        Rut=RUT;   }

    public String getPatente()
    {    return Patente;}

    public void setPatente(String PATENTE)
    {  Patente=PATENTE;}
    public String getModelo()
    { return Modelo;}
    public void setModelo(String MODELO)
    {  Modelo=MODELO;}
    public String getMarca()
    {return Marca;}
    public void setMarca(String MARCA)
    {   Marca=MARCA;}
    public int getAnio()
    {return Anio;}
    public void setAnio(int ANIO)
    { Anio=ANIO;}
    public String getRut()
    { return Rut;}
    public void setRut(String RUT)
    {  Rut=RUT;}
    public int compareTo(Object AutoIn) {
        Auto otroAuto = (Auto) AutoIn;
        if (this.getRut().equalsIgnoreCase(otroAuto.getRut())) {
            return 0;
        }
        String[] rutDivIn = otroAuto.getRut().split("-");   
        String[] rutDivThis = this.getRut().split("-");   

        int rutSinGuionIn = Integer.parseInt(rutDivIn[0]);
        int rutSinGuionThis = Integer.parseInt(rutDivThis[0]);

        if (rutSinGuionThis > rutSinGuionIn) {
            return 1;}
        if (rutSinGuionThis < rutSinGuionIn) {
            return -1;}
        return 1;
    }
 public String toString() {
        return Patente+" ->"+Modelo+" ->"+Marca + " -> " + Anio+" ->"+Rut;
    }  // Cierre toString
} // Cierre Clase Auto

Captura de la Aplicación:

 
Reflexión:

La finalidad de la actividad era conocer el tipo de lista ArrayList, donde gracias a este ejercicio me sirvió bastante ya que me permitió conocer otro tipo de lista, eso ayuda para saber cuando usar cada lista como por ejemplo este tipo de lista acepta datos duplicados en los atributos del objetos, lo que lo diferencia por ejemplo de TreeSet(otro tipo de lista, que no acepta duplicados), además de tener acceso a la lista se necesita un “puntero” para poder trabajar con la información.

Te invito a que si tienes dudas o quieres complementar esta actividades mediante opiniones, otras informaciones no tengas miedo de emitir tus comentarios, a participar donde cada comentario hará que se haga más interactivo este espacio.


No hay comentarios:

Publicar un comentario