如何删除JAVA集合中的元素

经常我们要删除集合中的某些元素。有些可能会这么写。  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.Con
currentModificationException  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的基础知识了解越多,代码就会写得越简洁。相反如果你的代码特别
复杂,则方法或设计一定有问题。

时间: 2024-08-01 12:48:15

如何删除JAVA集合中的元素的相关文章

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

经常我们要删除集合中的某些元素.有些可能会这么写. 复制代码 代码如下: 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 &q

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

经常我们要删除集合中的某些元素.有些可能会这么写. 复制代码 代码如下: 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 &q

C#实现在foreach中删除集合中的元素

C#实现在foreach中删除集合中的元素 1 2 3 4 5 6 7 8 List<string> str = new List<string>(); str.Add( "zs"); str.Add("ls"); str.Add( "ws" ); foreach(string s in str) {    str.Remove(s); } 有时候我们在foreach中需要修改或者删除集合 可是这时候却报如下错误:集合已修

基于java集合中的一些易混淆的知识点(详解)_java

(一) collection和collections 这两者均位于java.util包下,不同的是: collection是一个集合接口,有ListSet等常见的子接口,是集合框架图的第一个节点,,提供了对集合对象进行基本操作的一系列方法. 常见的方法有: boolean add(E e) 往容器中添加元素:int size() 返回collection的元素数:boolean isEmpty() 判断此容器是否为空: boolean contains(Object o) 如果此collecti

Scala: Range &amp; 实现集合中相邻元素间的差值

Range 欢迎转载,转载请注明出处,徽沪一郎. 概要 Scala中Range可以看成是List的特例,Range的包含的元素类型是Int, 本文介绍如何创建Range Range创建 方法一: val r1 = new Range(1,10,1) 方法二: val r1 = 1 to 10 需要注意的是,默认步长是1 可以使用by来改变步长 val r1 = 1 to 10 by 2 to和until的区别,to是将结束的元素也算在内是<=,而until是不包括结束元素是< 应用 最容易想到

java-list集合中没有元素,可以继续调用方法吗?

问题描述 list集合中没有元素,可以继续调用方法吗? list集合中没有元素,可以继续调用方法吗?没有元素的意思是不是就是说这个集合=null 解决方案 集合不是null,如果你new 了一个出来,是一个实例,集合里面没有元素,list.size() 这样调用结果是0 .试一下 解决方案二: 集合不是null,如果你new 了一个出来,是一个实例,集合里面没有元素,list.size() 这样调用结果是0 .试一下 解决方案三: 这不是方法,或者方法中用到list可以做好逻辑判断就没问题 解决

怎么用最简单的代码取出一个集合中每个元素的第一项并排序?

问题描述 怎么用最简单的代码取出一个集合中每个元素的第一项并排序? 比如一个集合:{{GGGD}{BBYH}{DDQP}{AACC}{CCPL}{FFQW}}怎样取出每个元素中的第一项并排序?{ABCDEFG} 解决方案 python实现:使用dict保存集合数据 取出所有key存到list中 使用sorted方法对list排序

Python通过递归遍历出集合中所有元素的方法_python

本文实例讲述了Python通过递归遍历出集合中所有元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: '''''通过递归遍历出集合中的所有元素 Created on 2013-9-29 @author: L.Eric '''  def print_List(list_nums):      for each_item in list_nums :           if isinstance(each_item,list):              print_Lis

js删除Array数组中指定元素的两种方法_javascript技巧

本节内容: js删除Array数组中指定元素 方法一, /* * 方法:Array.remove(dx) 通过遍历,重构数组 * 功能:删除数组元素. * 参数:dx删除元素的下标. */ Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=