Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/06/2012, 07:50
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 8 meses
Puntos: 344
Respuesta: Quiero recorrer un ArrayList y no puedo

Buenas,

Puedes usar la clase Collection y el método max para obtener el producto con mayor precio.

Código Java:
Ver original
  1. ArrayList<Producto> productos = new ArrayList<Producto>();
  2.      Collections.addAll(productos,new Producto(10),new Producto(50),new Producto(30));
  3.      Producto max = Collections.max(productos,new Comparator<Producto>(){
  4.             public int compare(Producto o1, Producto o2) {
  5.                double precio1 =o1.getPrecio();
  6.                        double precio2 = o2.getPrecio();
  7.                 return precio1 >  precio2 ? 1 : (precio1 == precio2) ? 0 : -1;
  8.             }        
  9.          
  10.      });

También puedes crearte una clase que implemente el comparador aparte para poder reutilizarla.

Código Java:
Ver original
  1. class ProductoPorPrecio implements Comparator<Producto>{
  2.             public int compare(Producto o1, Producto o2) {
  3.                double precio1 =o1.getPrecio();
  4.                        double precio2 = o2.getPrecio();
  5.                 return precio1 >  precio2 ? 1 : (precio1 == precio2) ? 0 : -1;
  6.             }
  7.      }
  8.  
  9.  ArrayList<Producto> productos = new ArrayList<Producto>();
  10.  Collections.addAll(productos,new Producto(10),new Producto(50),new Producto(30));
  11.      Producto max = Collections.max(productos,new ProductoPorPrecio());