当前位置:  编程技术>java/j2ee

删除JAVA集合中元素的实现代码

    来源: 互联网  发布时间:2014-10-26

    本文导语:  经常我们要删除集合中的某些元素。有些可能会这么写。 代码如下:  public void operate(List list){  for (Iterator it = list.iterator(); it.hasNext();) {  String str = (String)it.next();  if (str.equals("chengang")){  list.remove(str);  }  } ...

经常我们要删除集合中的某些元素。有些可能会这么写。

代码如下:

  public void operate(List list){
  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  list.remove(str);
  }
  }
  }

  这种写法一运行就会报如下异常:

  Exception in thread "main" java.util.ConcurrentModificationException
  at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)

  因为list在循环中的时候是不可以删除它的元素的。后来我是这样做的,一种很笨的方法,思路是这样的:创建一个List专门存放要被删除的元素,循环过后,用List.removeAll方法把元素删除。代码如下:

代码如下:

  public void operate(List list){
  List removeList= new ArrayList();
  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  removeList.add(str);
  }
  }
  list.removeAll(removeList);
  }

  这样也确实可以解决问题了,但是方法实在太笨重,其实可以有更简单的更高效的方法,就是用Iterator.remove方法,如下:

代码如下:

  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  it.remove();
  }
  }

  所以,你对Java的基础知识了解越多,代码就会写得越简洁。相反如果你的代码特别复杂,则方法或设计一定有问题。


    
 
 

您可能感兴趣的文章:

  • C++ Double Ended Queues(双向队列) 成员 erase():删除一个元素
  • 什么叫“删除一个元素,就必须移到另一个元素“?
  • C++ Lists(链表) 成员 erase():删除一个元素
  • jQuery 获取/设置/删除DOM元素的属性以a元素为例
  • C++ Maps 成员 erase():删除一个元素
  • Jquery删除元素的代码举例
  • C++ MultiMaps 成员 erase():删除元素
  • java 删除数组元素与删除重复数组元素的代码
  • C++ Lists(链表) 成员 remove():从list删除元素
  • php删除数组元素示例分享
  • C++ Lists(链表) 成员 unique():删除list中重复的元素
  • php删除数组元素示例代码
  • C++ Lists(链表) 成员 remove_if():按指定条件删除元素
  • 删除JComboBox中最后一个元素如何解决
  • C++ Lists(链表) 成员 pop_front():删除第一个元素
  • jQuery 删除/替换DOM元素的几种方式
  • C++ Priority Queues(优先队列) 成员 pop():删除第一个元素
  • C++ vector删除符合条件的元素示例分享
  • C++ Queues(队列) 成员 pop():删除第一个元素
  • jQuery动态添加、删除元素的方法
  • C++ MultiMaps 成员 clear():删除所有元素
  • php数组删除元素的例子
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 删除数据库中重复记录方法介绍及代码参考
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码
  • c++类库Boost.Bimap(遍历,插入,查找,删除)参考代码
  • php 删除记录同时删除图片文件的代码
  • C++ stl队列Queue用法介绍:删除,插入等操作代码举例
  • c# 删除空文件夹的代码
  • c++ STL关联式容器Map成员函数介绍及查找(find()),插入(insert()),删除(erase())等操作代码举例
  • ThinkPHP实现批量删除数据的代码实例
  • beyond_xiruo(希偌):请问我要删除某个DIV,那在<%.....%>之间的代码该怎么写???多谢!
  • C#下实现创建和删除目录的实例代码
  • jquery代码-如何显示或删除input域中的默认值
  • SQL 级联删除 级联更新的代码
  • sed删除文件中的一行内容的脚本代码
  • 使用SQL Server判断文件是否存在并删除的实例代码
  • PHP删除HTMl标签的代码
  • PHP多重判断删除文件函数代码
  • c# 文件夹操作(创建或删除)的实现代码
  • python2.7删除文件夹和删除文件代码实例
  • oracle命令行删除与创建用户的代码
  • PHP实现删除非站内外部链接实例代码
  • 我已经用源代码方式安装了apache,如何让它支持php和mysql(php没有安装,mysql安装的是rpm包),要不要重新安装apache?如何删除已有的ap
  • C++ Strings(字符串) 成员 erase():删除字符
  • 怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可。谢谢
  • 红帽RHEL下如何删除docker详细步骤介绍
  • 100分相送,怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可
  • c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
  • 请问:linux中的软件包安装后,怎么删除呀,直接删除吗?
  • Arch下面安装启动及删除docker介绍
  • jquery删除提示框(弹出是否删除对话框)
  • vim删除命令"d3e"为什么删除单词的数目不一致?
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3