我遇到了ArrayList函数remove()的问题。 我会尽量做到尽可能简短。 我有一个ArrayList,Posicao是我创建的另一个类,我在数组中放了一些对象。 问题是,当我打印ArrayList中的所有值时,我得到了预期,但是当我尝试使用remove(object)或lastIndexOf(value)时,它不起作用。 Remove()不删除任何东西和lastIndexOf(),甚至indexOf(),我得到一个错误,说我请求的对象不在Array中。 我仔细检查了对象实际上就在那里。 有什么我做错了吗? 我的代码部分,我遇到了问题。 如果我需要发布其他内容,请询问。 (=
System.out.println("BEGIN - Print beforeremove:" + tabuleiro0.posicoesLivres.contains(pos));
for(int i = 0 ; i < tabuleiro0.posicoesLivres.size() ; i++)
System.out.println(((Posicao)tabuleiro0.posicoesLivres.get(i)).x + " " + ((Posicao)tabuleiro0.posicoesLivres.get(i)).y);
System.out.println("END - Print before remove :");
tabuleiro0.posicoesLivres.remove(pos);
System.out.println("BEGIN - Print after remove:" + tabuleiro0.posicoesLivres.contains(pos));
for(int i = 0 ; i < tabuleiro0.posicoesLivres.size() ; i++)
System.out.println(((Posicao)tabuleiro0.posicoesLivres.get(i)).x + " " + ((Posicao)tabuleiro0.posicoesLivres.get(i)).y);
System.out.println("END - Print after remove :");
非常感谢您的耐心等待(=
答案 0 :(得分:0)
您的问题可能是您的课程需要覆盖 Object#hashCode
和Object#equals
方法。
这些方法必须实现,以便Java Collections
能够正常正常工作,当他们必须寻找一些元素,自我命令和一切...... < / p>
您可以详细了解when do I need to override equals and hashcode methods?和overriding equals and hashCode in Java;)
为了记录,使用 Eclipse (或任何体面的Java IDE,我猜),你可以使用一些菜单项功能为你实现这些: 来源 - &gt;生成hashCode()和equals()方法......