23/06/2012, 11:32
|
| | Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 12 años, 6 meses Puntos: 0 | |
Respuesta: Quiero recorrer un ArrayList y no puedo Gracias a todos, pero sigo teniendo provblemas. Les comento como es que tengo que resolver esto:
Me dan un diagrama de clases que lo tengo implementado ya (lo adjunto mas abajo) y lo que me piden es resolver que Clientes han comprado el producto de mayor precio. La consulta tiene que retornar una coleccion de objeto Cliente. Les adjunto mi codigo.
Espero que me puedan ayudar ya que si tengo este caso resuelto puedo seguir haciendo mas ejercicios y aplicando la logica y que la mayoria son iguales.
Va codigo echo por mi, espero sus modificaciones.
import java.util.ArrayList;
import java.util.Iterator;
public class Facturacion{
public static void main (String[]args){
Cliente cli1 = new Cliente("Pablo");
Cliente cli2 = new Cliente("Diego");
Factura fac1 = new Factura(10,cli1);
Factura fac2 = new Factura(11,cli2);
Factura fac3 = new Factura(12,cli1);
Proveedor prvd1 = new Proveedor("Perez S.A.");
Proveedor prvd2 = new Proveedor("Luis S.A");
Producto prd1 = new Producto(10.0,5,"Banana",prvd1);
Producto prd2 = new Producto(20.0,5,"Pera",prvd1);
Producto prd3 = new Producto(30.0,5,"Durazno",prvd2);
LineaFactura lf1 = new LineaFactura(2,prd1);
LineaFactura lf2 = new LineaFactura(1,prd2);
LineaFactura lf3 = new LineaFactura(3,prd3);
fac1.asignarLineas(lf1);
fac1.asignarLineas(lf2);
fac1.asignarLineas(lf3);
fac2.asignarLineas(lf3);
fac2.asignarLineas(lf2);
System.out.println(fac1);
System.out.println(fac2);
ControlFacturas CF = ControlFacturas.getInstancia();
ControlStock CS = ControlStock.getInstancia();
}
}
class Cliente{
private String nombre;
private ArrayList<Factura> facturas;
public Cliente(String nombre){
this.nombre = nombre;
facturas = new ArrayList<Factura>();
}
public String getNombre(){
return this.nombre;
}
//public boolean equals(Object ob){
// return (ob != null && ob instanceof Cliente && this.nombre.equals((Cliente)ob.getNombre()));
//}
public void asociarFactura(Factura fac) {
facturas.add(fac);
}
public String toString() {
StringBuilder stringBuilder = new StringBuilder(" Cliente - " + this.nombre + "\n");
return stringBuilder.toString();
}
}
class Factura{
private int codigo;
private ArrayList<LineaFactura> lineasfacturas;
private Cliente cliente;
public Factura(int codigo, Cliente cliente){
this.codigo = codigo;
this.cliente = cliente;
this.lineasfacturas = new ArrayList<LineaFactura>();
}
public ArrayList<LineaFactura> getLineas(){
return this.lineasfacturas;
}
public void asignarLineas(LineaFactura lf) {
lineasfacturas.add(lf);
}
public void asignarCliente(Cliente cli){
this.cliente = cli; }
public int getId(){
return this.codigo;
}
public String toString() {
StringBuilder stringBuilder = new StringBuilder("Factura " + this.codigo + this.cliente+ "\n");
for (LineaFactura ln : this.lineasfacturas) {
subtotal = ln.getProducto().getPrecio()*ln.getCantidad();
stringBuilder.append("\t" +ln.getProducto().getNombre() + " " + ln.getProducto().getPrecio()+ "-----" + ln.getCantidad() + "\n");
}
return stringBuilder.toString();
}
}
class LineaFactura{
private int cantidad;
private Producto producto;
public LineaFactura(int cantidad, Producto producto){
this.cantidad = cantidad;
this.producto = producto;
}
public int getCantidad(){
return this.cantidad;
}
public Producto getProducto(){
return this.producto;
}
public double getTotal(Producto prd){
return this.cantidad*prd.getPrecio();
}
}
class Producto{
private double precio;
private int stock;
private String nombre;
private Proveedor proveedor;
public Producto(double precio,int stock, String nombre, Proveedor proveedor){
this.precio = precio;
this.stock = stock;
this.nombre = nombre;
this.proveedor = proveedor;
}
public String getNombre(){
return this.nombre;
}
public double getPrecio(){
return this.precio;
}
public String toString() {
StringBuilder stringBuilder = new StringBuilder(" Proveedor - " + this.proveedor.getNombre() + "\n");
return stringBuilder.toString();
}
public Proveedor getProveedor(){
return this.proveedor;
}
}
//Clase Singleton . Lo pedian en el diagrama de clase
class Proveedor{
private String nombre;
private ArrayList<Producto> productos;
public Proveedor(String nombre){
this.nombre = nombre;
this.productos = new ArrayList<Producto>();
}
public String getNombre(){
return this.nombre;
}
//public boolean equals(Object ob){
//return (ob != null && ob instanceof Cliente && this.nombre.equals((Cliente)ob.getNombre()));
// return (ob != null && ob instanceof Proveedor() && this.nombre.equals((Proveedor().getNombre()));
//}
public String toString() {
StringBuilder stringBuilder = new StringBuilder(" Proveedor - " + this.nombre + "\n");
return stringBuilder.toString();
}
}
//Clase Singleton . Lo pedian en el diagrama de clase
class ControlFacturas{
private ArrayList<Factura> facturas;
private static ControlFacturas instancia = null;
private ControlFacturas(){
this.facturas = new ArrayList<Factura>();
}
public static ControlFacturas getInstancia() {
if (instancia == null)
instancia = new ControlFacturas();
return instancia;
}
public ArrayList<Factura> getFacturas(){
return this.facturas;
}
}
//Clase Singleton . Lo pedian en el diagrama de clase
class ControlClientes{
private ArrayList<Cliente> clientes;
private static ControlClientes instancia = null;
private ControlClientes(){
this.clientes = new ArrayList<Cliente>();
}
public static ControlClientes getInstancia() {
if (instancia == null)
instancia = new ControlClientes();
return instancia;
}
public ArrayList<Cliente> getClientes(){
return this.clientes;
}
}
//Clase Singleton . Lo pedian en el diagrama de clase
class ControlStock{
private ArrayList<Producto> productos;
//private ArrayList<Proveedor> proveedores;
private static ControlStock instancia = null;
private static ControlStock instancia2 = null;
private ControlStock(){
this.productos = new ArrayList<Producto>();
//this.proveedores = new ArrayList<Proveedor>();
}
public static ControlStock getInstancia() {
if (instancia == null)
instancia = new ControlStock();
return instancia;
}
public ArrayList<Producto> getProductos(){
return this.productos;
}
public ArrayList<Producto> getProductoMayorPrecio(){
float precio;
for (int i=0; i < productos.size(); i++){
return productos;
}
return productos;
}
}
Mil gracias de nuevo, y porfavor necesito ayuda para resolver este problema. GRACIASSSS!! |