Curso Java. Volumen XIV: Ejercicio de repaso

Escrito por Adrián Crespo
Java
5

A pesar de ser verano, seguimos adelantes en RedesZone con el curso de Java. En los volúmenes anteriores hemos estado tratando los Arrays y su utilización acompañado de ejemplos. Centrándonos en el volumen anterior, hablamos de los Arrays multimensionales (es decir, matrices) y los ArrayList.  Como pudimos observar estos tienen ventajas con repecto a los Arrays.  También os propusimos un ejercicios que tenía como base  un ejemplo de Arrays.

En este volumen os vamos a resolver el ejercicios que os propusimos  y también os plantearemos un ejercicio de repaso. El ejercicio abarcará tanto Arrays como ArrayList, pasando también por clases simple o la utilización de un método main. Asi que sin tardar más, vamos a meternos con el temario del volumen

Vamos a comenzar resolviendo el problema que os planteamos en el volumen anterior. Se trataba de un lista de personas que debia de implementarse con un ArrayList de Persona, y teníamos que hacer un metodo que buscará si una persona se encontraba en la lista o no.

A continuación, la solución en código:

Como podéis observar, la solución es muy parecida a los Arrays, lo unico que cambia es el método que nos da el tamaño de la lista, el que nos inserta los elementos en la lista y la manera de acceder a cada elemento de la lista, que lo hacemos con el get(indice). También es ligeramente distinto la manera en que declaramos el ArrayList con respecto al Array. Como ya sabemos al Array habia que especificarle un tamaño. Sin embargo al ArrayList no es necesario y cuando se llegue este se llene (que nosotros no lo sabremos), Java internamente aumentara automaticamente la capacidad de este.

Como habíamos dicho, vamos a proponeros un ejercicio.

  • Primera Parte

Deseamos implementar una clase Coche. La clase Coche tendrá como atributos la matrícula del coche, el nombre del dueño, y el número de bastidor. Ahora no nos valdrá para nada, pero decir que el número de bastidor de un coche es único, por lo tanto, no hay dos coches con el mismo número de bastidor. Clase Coche tendrá como métodos un constructor, al que se le pasará la matrícula, el nombre del propietario, y el número de bastidor. También tendrá tres métodos que retornarán  respectivamente la matrícula, el nombre del dueño y el bastidor.

  • Segunda Parte

Somos los dueños de una aseguradora y queremos llevar de manera organizada toda la cartera de coches que tenemos asegurados. Por lo tanto para ello deberemos utilizar o un Array o un ArrayList. En una clase separada que llamaremos por ejemplo ListaCoches, tendremos como atributos un lista de coches. Como métodos, tendremos un constructor, y dos métodos más:

  • insertaCoche: se le pasa como parámetro un Coche y el método se encarga de insertarle en la lista. Antes de insertarle el método deberá recorrer la lista y comprobar que el número de bastidor no ha sido ya insertado. Si es así, retornamos un booleano (false). En caso negativo, procedemos a la insercción y retornamos true.
  • buscaVehiculos: se le pasará el nombre del propietario y ,mostrará por pantalla el número de vehículos que tiene cada dueño y el número de bastidor de cada vehículo por lo tanto, será necesario un recorrido de la lista.

Se trata de un ejercicio de mayor complejidad que el resto que hemos hecho. En cualquier caso, se tenéis alguna duda lo podéis comentar y se os ayudará

En el siguiente volumen se os dará de forma detallada y explicada las dos soluciones, tanto la de Arrays como la de ArrayList.


Continúa leyendo
  • Lourdes

    Hola. Estoy intentando implementar la solución del ejercicio y me sale un error en ArrayList en el método BuscaPorNombre.
    Dices que ArrayList está en el paquete java.util pero no lo encuentro.
    Saludos.

  • Lourdes

    Ya me salió. No sé qué pasa que empiezo a escribir el código y sale una advertencia en el import java.util.ArrayList, pero lo puse después y ya salió sin errores.

    • el entorno de desarrollo tiene algunas caracteristicas, una de ellas es que cuando creas atributos, importas clases de java que no utilizados nunca en esa clase, te pone una advertencia, pero a pesar de esa advertencia compila sin problemas y se ejecuta sin problemas

      • Lord

        Hola Adrián, quisiera aclarar algo sobre una linea de código:

        ArrayList lista = new ArrayList();

        No me sale un error, pero sale una alerta, la alerta es:
        redundant type arguments in new expression (use diamond operator instead).

        Entonces la forma correcta sería:

        ArrayList lista = new ArrayList();

      • Lord

        Veo que el comentario no salio como lo escribí, disculpa!

  • Pingback: Curso gratis de introducción de Java | Formación Online()