首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只在数组上存储数字

只在数组上存储数字
EN

Stack Overflow用户
提问于 2014-01-15 18:26:45
回答 2查看 505关注 0票数 0

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

类Cliente的代码:

代码语言:javascript
复制
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的代码:

代码语言:javascript
复制
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类的代码

代码语言:javascript
复制
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");
}

}

我主要的代码是:

代码语言:javascript
复制
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();
}
}

谷物类和罗巴类看上去和Jamon完全一样(除了名字之类的)。

所以是的..。我的问题是“如何在只包含每个Jamon、Cereal、Ropa类的precios的Cliente中创建和排列?”

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-15 18:31:34

试试这个:

代码语言:javascript
复制
ArrayList<Double> precios = new ArrayList<Double>();
for (Producto p: products) {
    precios.add(p.getPrecio());
}

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

代码语言:javascript
复制
double[] precios = new double[products.size()];
for (int i = 0; i < products.size(); i++) {
    precios[i] = products.get(i).getPrecio();
}
票数 0
EN

Stack Overflow用户

发布于 2014-01-15 18:37:45

您可以使用实现列表接口的每个类,但是由于不能存储Double (基本类型),所以必须使用double。它很简单,使用double类的Double.valueof(双d)方法从Double获得一个Double。

如果您真的想坚持双原语类型,就必须使用基元数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21145424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档