如何解决从arrayList中移除一个人
我有一个名为person的类,其中包含一个人的信息,例如其姓名,年龄和地址。我还有另一个类,其中有一个ArrayList
,其中添加了所有客户。如何找到该人的姓名并将其删除?
这是我的代码,但无法完成工作。
public void poistaAsiakas(String poistettava) {
for (Henkilo p : this.henkilonTiedot) {
if (p.getNimi().equals(poistettava)) {
this.henkilonTiedot.remove(p); // or simply return it from there
break;
}
}
}
解决方法
在每次循环中都用List
循环时,您无法将其删除。您可以改为使用Collection#removeIf
:
this.henkilonTiedot.removeIf(p -> p.getNimi().equals(poistettava));
通常,当需要在迭代时删除元素时,使用Iterator
是一种方法。
for(final Iterator<Henkilo> it = this.henkilonTiedot.iterator(); it.hasNext();){
final Henkilo p = it.next();
if(p.getNimi().equals(poistettava)){
it.remove();
break;
}
}
如果只有一个要删除的元素,则基于索引的简单for
循环也将起作用。请注意,这不是最佳做法。
for(int i = 0; i < this.henkilonTiedot.size(); i++){
if (this.henkilonTiedot.get(i).getNimi().equals(poistettava)){
this.henkilonTiedot.remove(i);
break;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。