我试图用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这样的不同集合会更合乎逻辑吗?

10-05 22:55