Java – ¿Qué uso, Array o List?

octubre 29, 2009

ArrayVSList
Dentro de nuestros programas siempre habrá algun pedazo de código donde utilicemos arreglos.
Mientras implementaba unos métodos para insertar y eliminar registros de una clase, noté que en algunos había utilizado Arrays y en otros Lists. Por ello decidí buscar que es lo que recomendaban otros programadores al respecto, fue así como encontré este artículo.

Finalmente quede convencido de utilizar Lists debido a la flexibilidad que ofrecen.

Ejemplo:

public static void insert(List<Dato> datos) {
  //... configuracion de conexion
  for(Dato dato:datos){
	db.executeUpdate("insert into datos(desc,cantidad) values(:desc,:cantidad)",
	new Object[]{dato.getDescripcion(),dato.getCantidad()});
  }
}

VS.

public static void insert(Dato[] datos) {
  //... configuracion de conexion
  for(Dato dato:datos){
	db.executeUpdate("insert into datos(desc,cantidad) values(:desc,:cantidad)",
	new Object[]{dato.getDescripcion(),dato.getCantidad()});
  }
}

Como puedes observar, es prácticamente lo mismo, la diferencia es que al invocar el primer método puedes pasar como párametro un ArrayList, LinkedList, Vector o tu propia clase que implemente la interfaz List ;-).

byte!

Anuncios

3 comentarios to “Java – ¿Qué uso, Array o List?”

  1. Eliot Garcia Says:

    Gracias por la explicacion.

    Me quedo la duda a que te reieres con pasar tu propia clase?
    te refieres a un OBJETO de X clase? y de ser asi para que necesitas que implemente de la clase List? si al declarar una lista de objetos de tipo clase X ya lo aria o no?

    Gracias por tu ayuda.

    • cirovladimir Says:

      Supón que quieres utilizar una lista que no acepte elementos duplicados… tendrías algo como

      public class SinDuplicadosList implements List{
      // implementación de la clase
      }

      podrías pasar una instancia de esta “lista” a tu método insert

      List datos = new SinDuplicadosList();
      datos.add(new Dato(1));
      datos.add(new Dato(1)); // la implementación descarta los duplicados
      datos.add(new Dato(2));
      // etcetera
      insert(datos); // sólo inserta dato 1 y 2

      Saludos!

  2. Eliot Garcia Says:

    Gracias de nuevo.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: