我有一个具有构造函数的类,如下所示:
public Stock(String symbol, String name, int value) {
this.symbol = symbol;
this.name = name;
this.value = value;
}
现在,我有另一个类是抽象数据类型:
public class Holding {
private Stock stock;
private int amount;
public Holding() {
this.stock = null;
this.amount = 0;
}
public Holding(Stock stock, int amount) {
this.stock = stock;
this.amount = amount;
}
}
现在,我正在另一个类中编写一个方法。
我使用上面的Hold类创建了一个arraylist。 在这堂课
private ArrayList<Holding> holdings;
现在,我知道我在Hold类中的对象包含一个stock对象和一个int amount。
如何只访问Holding
ArrayList?
答案 0 :(得分:2)
不确定你的意思。
for (Holding h : holdings) {
out.println(h.getStock().getSymbol());
}
假设你有适当的吸气剂。
答案 1 :(得分:0)
您可能希望使用Java的foreach
循环遍历ArrayList:
for (Holding currentHolding : holdings) {
System.out.println(currentHolding.stock.symbol); // prints out all the symbols
}
您需要将属性Stock从private更改为public,或者创建一个getStock方法来返回它。否则,由于它是私有的,您无法访问它。
答案 2 :(得分:0)
如何只能访问Holding ArrayList中我的stock对象中的符号?
使用给定的代码,您无法执行此操作。
stock
类的Holding
字段添加公共getter方法。symbol
类的Stock
字段添加公共getter方法。完成后,您可以执行以下操作:
public Holding getHoldingForSymbol(List<Holding> holdings, String symbol) {
for (Holding h : holdings) {
if (h.getStock().getSymbol().equals(symbol)) {
return h;
}
}
return null; // or throw an exception
}