我对编程很陌生,所以如果这是一个愚蠢的问题,我很抱歉..我如何从哈希集中删除一个对象?我试过使用.remove(),但我做错了,因为它不适用于对象
public class Pocket
{
private HashSet<Penny> myset;
public Pocket(int PocketSize)
{
myset = new HashSet<Penny>();
while (PocketSize > myset.size()){
myset.add(new Penny());
}
public int pennyCount()
{
return myset.size();
}
public Penny removePenny(){
if (myset.size() > 0){
myset.remove(Penny);
} else{
return null;
}
}
我希望方法removePenny()从我之前初始化的集合中删除一个penny对象。如果有人能帮助我,那将是非常感谢的。
1条答案
按热度按时间mlmc2os51#
这不是
Set
的工作原理。首先,将多个便士添加到一个集合中并不像你希望的那样工作
Penny
没有正确的equals
/hashCode
实作,则它不应该在Set
中开始。只有当您有与集合中已经存在的完全相同的执行严修时,才能移除这样的Penny
,因为该执行严修是唯一与其本身相等的执行严修。最后,
Set
不支持根据其包含的示例类型进行删除。你需要完全重新考虑你想要实现什么,以及你想要如何建模。可能不会使用
Set
。