如何使用Iterator高效删除List中的多个元素?
- 内容介绍
- 文章标签
- 相关推荐
本文共计614个文字,预计阅读时间需要3分钟。
今天在写代码时发现了一个很搞笑的错误,就是在删除List中的多个元素时犯了一个错误。高效的代码如下:
javapublic static void main(String[] args) { List a=new ArrayList(); a.add(1); a.add(2); a.add(3); a.add(4);}
今天在写代码时要删除List中的多个元素时犯了一个很搞笑的错误,等效的就是以下代码
public static void main(String[] args) { List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); a.add("3"); a.add("4"); a.add("5"); Iterator<String> iterator = a.iterator(); while(iterator.hasNext()){ if("1".equals(iterator.next()) || "2".equals(iterator.next())) iterator.remove(); } }
运行后发现只能删除“1”这个元素,“2”删除不掉,后来才发现判断的时候如果第一个条件不满足,iterator.next()这个方法又会执行一遍,相当于已经不再是当前的元素了,当时写的还特别顺溜。。。
本文共计614个文字,预计阅读时间需要3分钟。
今天在写代码时发现了一个很搞笑的错误,就是在删除List中的多个元素时犯了一个错误。高效的代码如下:
javapublic static void main(String[] args) { List a=new ArrayList(); a.add(1); a.add(2); a.add(3); a.add(4);}
今天在写代码时要删除List中的多个元素时犯了一个很搞笑的错误,等效的就是以下代码
public static void main(String[] args) { List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); a.add("3"); a.add("4"); a.add("5"); Iterator<String> iterator = a.iterator(); while(iterator.hasNext()){ if("1".equals(iterator.next()) || "2".equals(iterator.next())) iterator.remove(); } }
运行后发现只能删除“1”这个元素,“2”删除不掉,后来才发现判断的时候如果第一个条件不满足,iterator.next()这个方法又会执行一遍,相当于已经不再是当前的元素了,当时写的还特别顺溜。。。

