Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从哈希集中删除并返回对象?_Java_Hashset_Bluej - Fatal编程技术网

Java 如何从哈希集中删除并返回对象?

Java 如何从哈希集中删除并返回对象?,java,hashset,bluej,Java,Hashset,Bluej,我有一个已经填充了Penny对象的Hashset,我想创建一个方法,从Hashset中删除其中一个Penny对象并返回它。下面是我创建的方法,用于执行此操作,但当我收到错误消息时,它不起作用。有人能给我解释一下做这件事的正确方法吗 public Penny removePenny(){ if(penniesSet.size()<= 0){ return null; } else penniesSet.remove(Penny)

我有一个已经填充了Penny对象的Hashset,我想创建一个方法,从Hashset中删除其中一个Penny对象并返回它。下面是我创建的方法,用于执行此操作,但当我收到错误消息时,它不起作用。有人能给我解释一下做这件事的正确方法吗

public Penny removePenny(){

    if(penniesSet.size()<= 0){
        return null;
    }
    else 
        penniesSet.remove(Penny)

    return penniesSet.get(Penny)
}
public Penny removeppenny(){

如果(pennieset.size()您正在将类型
Penny
传递给
remove
方法。您应该传递一个对象

关于
get
方法,您可能应该阅读以下内容:

此外,在
Hashset
中查找对象时可能会出现问题的一个典型问题是
Penny
没有合适的()方法

像这样删除任意的
便士
可能并不完全是您一开始想要做的事情。如果您想删除最后添加的一个便士(称为从堆栈中弹出),您可能需要考虑使用
便士集。删除(便士)
便士集。获取(便士)
将不起作用,因为
Penny
是类名,而不是值。如果要从集合中获取任何要删除的元素,请使用
set.iterator().next()


您必须使用迭代器返回penny对象并将其从Hashset中删除。 请尝试以下代码:

public Penny removePenny(){
    Penny p = null;
    Iterator it = penniesSet.iterator();
    if(it.hasNext()) {
        p = (Penny) it.next();
        it.remove();
    }
    return p;
}

什么类型的错误消息?我假设您已经在实际代码中输入了缺少的
,但您忘记输入上面的
便士set.remove(便士)
由于多种原因,这是不可编译的。我建议您先从一本书开始,堆栈溢出不能代替一本书、教程或类。这个答案是错误的,
remove()
返回一个
布尔值
。要获得正确的实现,请看我的答案。@scarLópez Oops,在
地图上想
删除
。你是不是只是复制粘贴了我自己的答案,甚至没有给予信任?!太棒了。@scarLópez不要那么热衷于攻击别人……我错误地使用了
删除
,事实上使用了de>Iterator
概念在你更新之前。我可以确认August使用Iterator概念的时候,我的屏幕上Oscar的帖子仍然有
便士。删除(Penny)
行(参见我在他的帖子上的评论)。我不确定指出了什么“事实”,因为我看到的只是一个带着疑问的指控,但是“事实”这项指控意味着根本不存在。
public Penny removePenny(){
    Penny p = null;
    Iterator it = penniesSet.iterator();
    if(it.hasNext()) {
        p = (Penny) it.next();
        it.remove();
    }
    return p;
}