java-求解,在for新循环,即增强型循环中,能不能删除集合的元素。。z

问题描述

求解,在for新循环,即增强型循环中,能不能删除集合的元素。。z

如题,求解,在for新循环,即增强型循环中,能不能删除集合的元素。。

    记得for新循环就是一个迭代器吧,那它要怎么调用他的remove方法,是还要在循环体里实例化Iterate吗

解决方案

可以用一般的for循环按照下标从后往前遍历。从前往后遍历的时候删除元素会丢出异常。

解决方案二:

使用迭代器进行循环集合,然后使用迭代器的remove方法,其他的会引发异常

解决方案三:

用迭代器循环,然后再用迭代器中的remove()方法删除你要删除的集合元素

解决方案四:

不行,要做删除只能用迭代器,不然都会或多或少闯荡出现问题

解决方案五:

可以不使用迭代器,但是你要对索引进行计算
比如
for(int i = 0;i < size; i++){
if(condition){
list.remove(i);
// 这下面要对i做一个计算,不过我忘记了具体是怎么算的,你要自己试验一下
}
}

解决方案六:

可以将要删除的数据存放在一个新的数组中,然后使用removeAll方法进行删除即可,不多说直接上代码
public static void main(String[] args)
{
List list = new ArrayList<>();
for (int i = 0; i < 10; i++)
{
list.add(i+1);
}
for (Integer temp : list)
{
System.out.println(temp);
}
System.out.println("---------------------------------begin delete element");
List deleteList = new ArrayList<>();
for (Integer deleteElement : list)
{
if(deleteElement%2==0)
{
deleteList.add(deleteElement);
}
}
list.removeAll(deleteList);
deleteList = null;
for (Integer temp : list)
{
System.out.println(temp);
}
}


解决方案七:

for循环集合有对应的remove方法或转换特iterate来remove
http://blog.csdn.net/strutce/article/details/45937415

解决方案八:

用迭代器循环,然后使用迭代器的remove方法

解决方案九:

集合的3种遍历形式(一般for循环、增强型for循环、迭代器)
Java中增强型for循环
增强型for循环的各个参数

时间: 2024-10-06 23:56:46

java-求解,在for新循环,即增强型循环中,能不能删除集合的元素。。z的相关文章

删除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

Java 8新特性之旅:使用Stream API处理集合

在这篇"Java 8新特性教程"系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章"遍历.过滤.处理集合及使用Lambda表达式增强方法"中,我已经深入解释并演示了通过lambda表达式和方法引用来遍历集合,使用predicate接口来过滤集合,实现接口的默认方法,最后还演示了接口静态方法的实现. 源代码都在我的Github上:可以从 这里克隆. 内容列表 使用流来遍历集合. 从集合或数组

java web应用中新起一个线程 在线程中怎么获取系统登录的数据

问题描述 java web应用中新起一个线程 在线程中怎么获取系统登录的数据 java web应用中新起一个线程 在线程中怎么获取系统登录的数据,系统登录用的是Spring Secrity 解决方案 可以使用缓存,自己写一个缓存类.或者使用Redis.

Java 语法介绍(六):循环

循环: for,while和do Java中有三种循环控制语句,他们是:for语句.while语句和do语句,下面分别说明这三种语句的结构. 1:for循环 for语句的格式为: for (初始化语句; 条件语句; 控制语句) { 语句1 ; 语句2 ; .... 语句n ; } for 语句的执行顺序是:首先执行"初始化语句":然后测试"条件语句":若条件成立,则执行语句1到语句n:然后执行"控制"语句:接着再测试条件语句是否成立,如果成立则重

JAVA基础培训(6),For循环语句的使用

在所有的循环中,最常用的就是for了,另外2个 while和do..while我基本不用.所以 我这里就把for循环重点介绍一下. 源代码 package lession6; /** * 老紫竹JAVA基础培训(6),For循环语句的使用.<br> * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession6 { /** * for循环有三部分用分号分割<br> * 第一部分是初始的数据<br> * 中

c语言-求助一个java语言的一个for循环语句

问题描述 求助一个java语言的一个for循环语句 for(int i=2,j=1; j<10; i=(i==9)?(((++j)/j)+1):(i+1)){ System.out.printf("%d*%d=%2d%c",i,j,i*j, ((i==9)?'n':' ')); } 输出结果是99乘法表. 这个for循环里的++j为什么不能换成j+1啊? 谢谢各位了. 解决方案 ++j是改变变量值的 j+1是不改变变量值的 解决方案二: ++j 等效于j=j+1 你用j+1 原j

求素数-java 求解大于Long.MAX_VALUE的五个素数。。。

问题描述 java 求解大于Long.MAX_VALUE的五个素数... 为什么运行没有结果啊!!!等着交作业呢...求一个简化的程序...至少能让我算出数字啊!!!或者大神帮我找一下错误啊...跪求啊!!!! import java.math.*; public abstract class FindFivePrime{ public static void main(String[] args){ BigDecimal i = new BigDecimal(Long.MAX_VALUE);

java源码-这个java求解,我测的是7没有正确答案啊

问题描述 这个java求解,我测的是7没有正确答案啊 这个题怎么解,我测了两遍都是七没有正确答案求解???????????????????????????????????? 解决方案 写一个这个程序你的结果不就很清楚了嘛 int[] x[] = {{12} {3 4 5} {6 7 8 9}};// int[][] y = x;// System.out.println(y[2][1]); int len; for(int i = 0; i < x.length; i++){ //所得到的每一个