martes, 18 de octubre de 2016

Java básico #17

ArrayList. Estructura dinámica de datos

Un ArrayList, nos permite guardar datos de la misma manera que un array normal, con las diferencias de que no es necesario declarar su tamaño de aqui que se dinámico y permite almacenar distintos tipos de datos, aunque si lo deseamos podemos decirle al ArrayList que solo guarde un tipo de datos, ya lo veremos.

De forma general un ArrayList se declara así:

import java.util.ArrayList;

ArrayList a = new ArrayList(();

Para añadir datos, usamos el método add().

a.add("Esto es un String");
a.add(443);
a.add('j');

Si queremos hacer que el ArrayList solo pueda contener datos de un tipo (esto es util, ya que al trabajar con este lleno de multiples tipos de datos, puede darnos complicaciones) hacemos lo siguiente:

ArrayList<tipoDato> nombreArray = new ArrayList<tipoDato>();

Algunos métodos de ArrayList son los siguientes (aquí, puedes consultarlos todos):

size() --> Devuelve el número de elementos
add(X) --> Añade el objeto X al fnal. Devuelve true
add(posición, X) --> Añade el objeto X, en la posición indicada
get(posición) --> Devuelve el elemento de la posición indicada
remove(posición)--> Elimina el objeto, que se encuentra en la posición indicada. Devuelve el                                             elemento eliminado
remove(X) --> Elimina la primera ocurrencia del objeto X. Devuelve true, si el elemento está en la                             lista
clear() --> Elimina todos los objetos


Y, ¿Cómo recorro un ArrayList?

Hay tres formas:


  • Mediante un bucle for
                  for(int i=0;i<array.size();i++){
                      System.out.println(array.get(i));
                  }
  • Mediante un bucle foreach
                for(Object o : nombreArray){
                    System.out.println(o);
                }
  • Utilizando un objeto Iterator (import java.util.Iterator;)
              La ventaja de usar un Iterator, es que no necesitamos indicar el tipo de dato. Tiene dos métodos:

hasNext --> Devuelve true si hay más elementos en el arrayList
next --> Devuelve el siguiente objeto

               Iterator it = nombreArray.iterator();
               while(it.hasNext()){
                   System.out.println(it.next());
               }

Solución al ejemplo anterior:

package Matrices;
 
public class Main {
 public static void main(String args[]){
 
  //1ª forma de declaración y asignación
  int[][]alumnos = new int[3][4];
 
  alumnos[0][0] = 7; alumnos[0][1] = 14; alumnos[0][2] = 8; alumnos[0][3] = 3;
  alumnos[1][0] = 6; alumnos[1][1] = 19; alumnos[1][2] = 7; alumnos[1][3] = 2;
  alumnos[2][0] = 3; alumnos[2][1] = 13; alumnos[2][2] = 4; alumnos[2][3] = 1;
 
  //2ª forma de declaración y asignación
 
  int[][] alumnos2 = {{7,14,8,3},{6,19,7,2},{3,13,4,1}};
 }
}

Ejercicio:
Escribe un programa que lea números enteros y los guarde en un ArrayList hasta que se lea (introduzca) un 0, y muestra los número leídos, su suma y su media.Debes usar el bucle do-while y un Iterator.

No hay comentarios:

Publicar un comentario