我試圖填充與竹篙對象構造一個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