我试图填充与竹篙对象构造一个HashSet,但我真的不知道如何做到这一点。我写了这个,但我不断收到错误消息。为什么我不能一个对象添加到HashSet
public Pocket(int numOfPennies){
HashSet penniesSet = new HashSet<Penny>();
while(penniesSet.size() <= numOfPennies){
penniesSet.add(Penny);
}
我试图填充与竹篙对象构造一个HashSet,但我真的不知道如何做到这一点。我写了这个,但我不断收到错误消息。为什么我不能一个对象添加到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());
此外,
pennyA.equals(pennyB)
。当然,这取决于你如何为你的Penny类定义equals(...)
和hashCode()
。感谢您的回答,我会使用其他的东西,但我必须使用一个哈希集,因为这是我被分配去做的事情。对不起,如果我的问题是有点垃圾我是相当新的编码和这个网站,所以我不完全掌握规则等...... – 2014-12-01 23:05:14
也许每个竹is将有一个序列号? – 2014-12-01 23:09:40
另外的问题下文提到的,您使用的是原始类型声明你设定的。正确的形式是'HashSet penniesSet = new HashSet ()',尽管对于Java 7,您可以避免在后一种情况下重复'Penny':HashSet penniesSet = new HashSet <>()'。 –
2014-12-01 23:11:20
(实际上,'设置 penniesSet = new HashSet <>()'会更好,如果您稍后决定切换到'TreeSet') –
2014-12-01 23:12:20