如何在java中在向量中存储多个数据类型的集合? 我是C++背景的,C++中可以使用指针,在向量中存储多个数据类型的集合,java如何使用这个数据集呢? 例如,我想存储: {名称、价格/磅、重量} {名称、价格} 这是一种面包店收据程序

如何在java中在向量中存储多个数据类型的集合? 我是C++背景的,C++中可以使用指针,在向量中存储多个数据类型的集合,java如何使用这个数据集呢? 例如,我想存储: {名称、价格/磅、重量} {名称、价格} 这是一种面包店收据程序,java,Java,Java是一种非常面向对象的语言,它严重依赖于类和对象。您可能会发现为收据创建一个类,然后只存储一个数组收据更容易 但是,您可能希望也可能不希望在收据类中有产品的列表。这样,您可以在一张收据上有多个项目。不过,这也需要一个产品类,在收据类中,您可以将名称、价格/磅、重量更改为产品列表,而您的产品类将存储这些变量。每种产品都会有名称、每磅价格和重量 public class Receipt { String name; double pricePerPound; doubl

Java是一种非常面向对象的语言,它严重依赖于类和对象。您可能会发现为
收据创建一个类
,然后只存储一个数组收据更容易

但是,您可能希望也可能不希望在
收据
类中有
产品的列表。这样,您可以在一张收据上有多个项目。不过,这也需要一个
产品
类,在
收据
类中,您可以将
名称
价格/磅
重量
更改为产品列表,而您的
产品
类将存储这些变量。每种产品都会有名称、每磅价格和重量

public class Receipt {
    String name;
    double pricePerPound;
    double weight;

    //Constructor
    public Receipt() {

    }

    //Other methods can go here, like getters and setters
}
然后,您就可以拥有一个
收据数组

Receipt[] receipts = new Receipt[10];
或者您可以使用
java.util.ArrayList
获取大小不同的数据类型

ArrayList<Receipt> receipts = new ArrayList<>(); //ArrayList of type Receipt
ArrayList receipts=new ArrayList()//收据类型的ArrayList

请参阅文档,了解可以使用的方法。Java是一种非常面向对象的语言,它严重依赖于类和对象。您可能会发现为
收据创建一个类
,然后只存储一个数组收据更容易

但是,您可能希望也可能不希望在
收据
类中有
产品的列表。这样,您可以在一张收据上有多个项目。不过,这也需要一个
产品
类,在
收据
类中,您可以将
名称
价格/磅
重量
更改为产品列表,而您的
产品
类将存储这些变量。每种产品都会有名称、每磅价格和重量

public class Receipt {
    String name;
    double pricePerPound;
    double weight;

    //Constructor
    public Receipt() {

    }

    //Other methods can go here, like getters and setters
}
然后,您就可以拥有一个
收据数组

Receipt[] receipts = new Receipt[10];
或者您可以使用
java.util.ArrayList
获取大小不同的数据类型

ArrayList<Receipt> receipts = new ArrayList<>(); //ArrayList of type Receipt
ArrayList receipts=new ArrayList()//收据类型的ArrayList

有关可以使用的方法,请参阅文档。在Java中,正确的方法是创建一个接口,该接口表示要存储在集合中的对象的公共属性,然后让这些对象的每个类实现该接口

interface BakeryItem {
    String getName();
    float getPrice();
}

class WeightedItem {
    private final float weight;
    private final float pricePerPound;

    public float getPrice() {
        return weight * pricePerPound;
    }
}

List<BakeryItem> bakeryItems;
interface BakeryItem{
字符串getName();
浮动价格();
}
类WeightedItem{
私人最终浮动重量;
私人最终浮动价格每磅;
公开发行价格(){
返回重量*每磅价格;
}
}
列出烘焙项目;
如果需要使用不同类的特定属性,那么我建议使用将逻辑与数据分开


使用
List
和强制转换检索可以在集合中存储不同的类,但由于各种原因,这不是推荐的方法。

在Java中执行此操作的正确方法是创建一个接口,该接口表示要存储在集合中的对象的公共属性,然后创建每个类这些对象中的一个实现了该接口

interface BakeryItem {
    String getName();
    float getPrice();
}

class WeightedItem {
    private final float weight;
    private final float pricePerPound;

    public float getPrice() {
        return weight * pricePerPound;
    }
}

List<BakeryItem> bakeryItems;
interface BakeryItem{
字符串getName();
浮动价格();
}
类WeightedItem{
私人最终浮动重量;
私人最终浮动价格每磅;
公开发行价格(){
返回重量*每磅价格;
}
}
列出烘焙项目;
如果需要使用不同类的特定属性,那么我建议使用将逻辑与数据分开


使用
List
和检索时强制转换可以在集合中存储不同的类,但由于各种原因,这不是推荐的方法。

BakeryItem似乎只需要一个类。。。因此,您将向量(最好是Arraylist)存储为一个对象,这太笼统了,无法提供有用的答案。我们应该看看你的类什么样子,你想做什么,你被困在什么上面。@ SMOSELL对于C++程序员来说不是太普通。我们习惯于把各种各样的东西贴在各种各样的地方,其中有些并不完全合适。指针可以是美丽和有用的东西。看看哪一个有类似问题的解决方案。BakeryItem似乎只需要一个类。。。因此,您将向量(最好是Arraylist)存储为一个对象,这太笼统了,无法提供有用的答案。我们应该看看你的类什么样子,你想做什么,你被困在什么上面。@ SMOSELL对于C++程序员来说不是太普通。我们习惯于把各种各样的东西贴在各种各样的地方,其中有些并不完全合适。指针可以是美丽而有用的东西。看看哪一个有类似问题的解决方案。