仅在数组上存储数字

时间:2014-01-15 18:26:45

标签: java arrays arraylist double store

我有一个Cliente类,它有一个ArrayList,用于存储Jamon,Cereal等类。这个类(Jamon,Cereal等)是从名为Producto的超类扩展而来的。 我需要的是一个数组(除了数组列表),它只存储每个类的precios(double)。这是为了将它们与for循环一起添加。 这是我的代码

Cliente类的代码:

import java.util.List;
import java.util.ArrayList;
public class Cliente extends Persona{
    public List<Producto>products=new ArrayList<Producto>();

    public void echarAlCarrito(Producto p){
        products.add(p);
    }
}

Producto类的代码:

public abstract class Producto{
protected double precio;

public void setPrecio(double precio){
    this.precio=precio;
}

public double getPrecio(){
    return precio;
}

abstract void comprar(Cliente c);


}

Jamon类的代码

public class Jamon extends Producto implements Refrigerable{
protected String marca;

public Jamon(String marca, Double precio){
    this.marca=marca;
    this.precio=precio;
}

public void setMarca(String marca){
    this.marca=marca;
}
public String getMarca(){
    return marca;
}

public void comprar(Cliente c){
    System.out.println("El cliente ha comprado el jamon");
}

}

我的主要代码:

public class PruebaSupermercado{
double suma;

public static void verCarrito() {
    Cliente zoo = new Cliente();
    zoo.echarAlCarrito(new Jamon("Fud",15.3));
    zoo.echarAlCarrito(new Ropa("GAP",457.5));
    zoo.echarAlCarrito(new Cereal("Nestle",36.2));
    Cliente hola = new Cliente();
    for (Producto a:zoo.products){
        a.comprar(hola);
    }
}

public static void main(String[] args) {
    verCarrito();
}
}

谷物和ropa类与Jamon看起来完全相同(名称等除外)。

所以是的..我的问题是“我如何在Cliente中制作和阵列只包含每个Jamon,Cereal,Ropa类的精确度?”

谢谢

2 个答案:

答案 0 :(得分:0)

试试这个:

ArrayList<Double> precios = new ArrayList<Double>();
for (Producto p: products) {
    precios.add(p.getPrecio());
}

或者,如果你真的需要一个数组:

double[] precios = new double[products.size()];
for (int i = 0; i < products.size(); i++) {
    precios[i] = products.get(i).getPrecio();
}

答案 1 :(得分:0)

您可以使用实现List接口的每个类,但由于您不能存储double(基本类型),因此您必须使用Double。使用Double类的Double.valueof(double d)方法从double获取Double是很简单的。

如果你真的想坚持双原语类型,你必须使用原始数组。