我试图用Penny对象填充构造函数中的HashSet,但是我不确定如何执行此操作。我已经写了这个,但是我一直收到错误消息。
public Pocket(int numOfPennies){
HashSet penniesSet = new HashSet<Penny>();
while( penniesSet.size() <= numOfPennies){
penniesSet.add(Penny);
}
最佳答案
您不是在集合中添加对象,而是试图添加类型,这将无法正常工作甚至无法编译。代替
penniesSet.add(Penny);
尝试
// assuming Penny has a default constructor
penniesSet.add(new Penny());
也,
使用for循环(而不是while循环)将其添加到集合中,因为在启动循环之前您已经知道要循环多少次。
您确定要使用HashSet来保存便士吗?当您希望集合中没有重复项时,将使用HashSet,但是一个Penny是否等于另一个Penny?换句话说,这不应该总是正确的:
pennyA.equals(pennyB)
。当然,这取决于您如何为Penny类定义equals(...)
和hashCode()
。像ArrayList这样的不同集合会更合乎逻辑吗?