Foros del Web » Programación para mayores de 30 ;) » Java »

ArrayList con Objetos

Estas en el tema de ArrayList con Objetos en el foro de Java en Foros del Web. Hola gente, estoy haciendo un programa para que me ordene los objetos de un ArrayList, el objeto seria Integer. Pero a la hora de ejecutarlo ...
  #1 (permalink)  
Antiguo 23/04/2012, 21:08
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
ArrayList con Objetos

Hola gente, estoy haciendo un programa para que me ordene los objetos de un ArrayList, el objeto seria Integer. Pero a la hora de ejecutarlo no me los ordena.
Acá les dejo esa parte del código a ver si me pueden ayudar!!

case 4:

aux = new Articulos();
aux1 = new Articulos();
boolean ordenado = false;
do{

ordenado = true;
for(cont=0; cont<articulos.size(); cont++){
aux = new Articulos();
aux1 = new Articulos();
producto = new Articulos();
producto2 = new Articulos();
producto = (Articulos) articulos.get(cont);
producto2 = (Articulos) articulos.get(cont++);
if((Integer) producto.getClave()> (Integer) producto2.getClave()){
ordenado = false;
aux = (Articulos) articulos.get(cont);
aux1 = (Articulos) articulos.get(cont++);
articulos.remove(cont);
articulos.add(cont,aux1);
articulos.remove(cont++);
articulos.add(cont++,aux);
}
}

}while(!ordenado);

System.out.println();
for(cont=0; cont<articulos.size(); cont++){
producto = new Articulos();
producto = (Articulos) articulos.get(cont);
System.out.println("Clave del Articulo: " + producto.getClave());
System.out.println("Descripcion del Articulo: " + producto.getDescripcion());
System.out.println("Precio del Articulo: " + producto.getPrecio());
System.out.println("Stock del Articulo: " + producto.getCantidad());
System.out.println();
}

break;
  #2 (permalink)  
Antiguo 24/04/2012, 08:12
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: ArrayList con Objetos

Imaginate que tienes un arraylist de productos no ordenados y los quieres ordenar por clave

Pues creas un nuevo arraylist auxiliar
Recorrres el arraylist de tus productos
Si el arraylist auxiliar no tiene elementos, añades el elemento
Si el arraylist auxiliar tiene elementos, recorres el arraylist auxiliar, comparando el id del producto que quieres añadir con el de los productos añadidos.
En el momento que detectes que el id del nuevo producto es menor que el id del que comparas, introduces el objeto en esa posición (Recuerda que la posición en arraylist va de 0 a size()-1).
Al acabar tendrías el nuevo array auxiliar con los datos ordenados y ya podrías trabajar con ellos.

También existe una interfaz de comparación para listas, no sé que te vendrá mejor.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 24/04/2012, 08:41
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: ArrayList con Objetos

Muchas gracias fuzzylog por contestar!!! Anoche me quede hasta las 3 y lo pude hacer andar con la comparación de listas.. Me queme mucho la cabeza con el método burbuja y no lo pude hacer andar..

Como tengo muy poca programación de Java encima, me costo entenderlo, pero al final me quedo así:

Collections.sort(articulos, new Comparator() {

public int compare(Object o1, Object o2) {
Articulos producto = (Articulos) o1;
Articulos producto1 = (Articulos) o2;
int clave = producto.getClave();
int clave2 = producto1.getClave();

if (clave > clave2){
return 1;
} else if (clave < clave2) {
return -1;
} else {
return 0;
}
}
});

Etiquetas: arraylist, objetos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:44.