我有一组“Part”类型的对象,每个Part都与数量相关联(一个字段,指定该特定部分所需的单位数)。是否存在java存储此数据的方式,除了哈希映射?
答案 0 :(得分:1)
您可以编写一个包含两个字段的包装对象:Part和quantity:
public class PartWithQuantity
{
private Part part;
private int quantity;
public int getQuantity() { return quantity; }
public void setQuantity(int q) { quantity = q; }
public Part getPart() { return part; }
public void setPart(Part p) { part = p; }
}
如果担心HashMap可能使用太多内存,您也可以使用TreeMap。
答案 1 :(得分:0)
只需将元数据存储到arraylist即可轻松完成。 您可以使用包含一个部件类型引用的类,而其他(数量)是int类型。然后你甚至可以将这个新类的实例存储到一个arraylist中。请记住,您可以通过调用该对象随时从此arraylist访问您的信息。
答案 2 :(得分:0)
实现此目标的最简单方法是修改Part
类并添加quantity
字段及其setter和getter。
另一种选择是使用包装器对象并将其存储在Set
中。
我创建了一个名为check()
的便捷方法,可以轻松识别感兴趣的Part
:
public class PartExtended {
private Part part;
private int quantity;
public PartExtended(Part part, int quantity) {
this.part = part;
this.quantity = quantity;
}
public boolean check(Part part) {
return part.equals(this.part);
}
public Part getPart() {
return part;
}
public int getQuantity() {
return quantity;
}
}
要检索Part
' quantity
,请使用for
循环:
Set<PartExtended> data = new HashSet<>();
data.add(new PartExtended(new Part(), 0));
for (PartExtended item : data) {
if (item.check(new Part())) {
int quantity = item.getQuantity();
}
}