我来自c + +背景和c + +我们可以使用指针和存储在一个向量多个数据类型的集合,但我们如何在java中做到这一点。 例如,我想存储: {名称,价格/磅,重量} {名称,价格} 这是一种面包店收据计划。如何在java中的向量中存储多个数据类型的集合?
1
A
回答
2
Java是一种非常面向对象的语言类型,它非常依赖类和对象。您可能会发现更容易为Receipt
授课,然后只需存储阵列收据
但是,您可能会也可能不希望在Receipt
类中拥有Products
列表。通过这种方式,您可以在单个收据上包含多个项目。这也需要一个Product
类,而且在Receipt
类中,您可以将name
,pricePerPound
,weight
更改为产品列表,而您的Product
类将改为存储这些变量。然后每个产品将有一个名字,每磅的价格和重量
public class Receipt {
String name;
double pricePerPound;
double weight;
//Constructor
public Receipt() {
}
//Other methods can go here, like getters and setters
}
然后,你可以有数组Receipts
Receipt[] receipts = new Receipt[10];
或者您可以使用java.util.ArrayList
得到的数据类型,这将改变在大小
ArrayList<Receipt> receipts = new ArrayList<>(); //ArrayList of type Receipt
见ArrayList文档的方法,您可以使用
1
在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;
如果您需要使用不同类的特定属性的话,我建议使用visitor pattern的逻辑从数据中分离出来。
使用List<Object>
可以在检索中存储不同的类,并在检索时进行投射,但由于各种原因,这不是建议的方法。
相关问题
- 1. 向量存储Rust中的混合类型数据
- 2. 如何在Java中存储矢量?什么是数据类型?
- 3. 如何在向量中存储数据?
- 4. 如何在向量中存储多个类的不同对象?
- 5. 声明存储在集合中的类型(文字)的变量
- 6. 如何在java中的单个集合中使用difirent类型的数据
- 7. 如何在C#中有多个派生类型的单个数据集合?
- 8. 在Java中存储变量类型
- 9. Java:将某些类型的集合中的对象包含在集合中以存储重复集合
- 10. 如何在java中的任何二维数组中存储多个不同数据类型的字段?
- 11. 使用NoRM在MongoDB的一个集合中存储多种类型的对象
- 12. C++如何两个数据类型存储在一个矢量
- 13. 指定集合数据类型的Java?
- 14. Java集合 - 存储多个信息
- 15. 如何将混合类型文件中的整数存储到数组中? Java
- 16. 将多个数据类型存储在单个HashMap中
- 17. 如何存储在一个向量中的多个派生类,而切片
- 18. C如何在内存中存储不同的数据类型?
- 19. 在java中存储大数的id基本数据类型?
- 20. 在Java中声明集合的类型
- 21. 如何在Java中以不同数量的行存储数据?
- 22. 什么是适合存储少量元素的集合类型?
- 23. 如何创建可存储在Java中的多个数据类型的对象ArrayList类
- 24. 何处/如何存储数据集合
- 25. 如何将存储过程的多个结果存储到数据集中?
- 26. 如何在1个变量中存储多个行集sql
- 27. 如何原始型(String)的集合存储到数据库
- 28. 如何创建名称存储在向量中的数据帧
- 29. 在结构向量的结构向量图中存储数据
- 30. 逼退多种类型的数据中的向量在C++
BakeryItem似乎只需要一个类...所以你创建一个Vector(最好是Arraylist)存储的对象 –
这太笼统了,不能提供有用的答案。我们应该看看你的课程是什么样的,你想要做什么,以及你坚持什么。 – shmosel
@shmosel这对于C++程序员来说不是太普通。我们习惯于把各种各样的东西粘在各种地方,其中有些并不完全合适。指针可以是美丽而有用的东西。 –