iterator的romove方法的注意事项

package cn.lonecloud.Iterator;

import java.util.ArrayList;
import java.util.Iterator;

public class myIterator {
	public static void main(String[] args) {
		ArrayList<Integer> list=new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			list.add(i);
		}
		/**
		 * Exception in thread "main" java.lang.IllegalStateException
			at java.util.ArrayList$Itr.remove(ArrayList.java:864)
			at cn.lonecloud.Iterator.myIterator.main(myIterator.java:17)
		 */
		Iterator<Integer> iterator=list.iterator();
		while (iterator.hasNext()) {
			Integer integer = (Integer) iterator.next();
			System.out.println(integer);
			iterator.remove();
			iterator.remove();//这里会出现错误由于next和remove方法的调用是具有相互依赖性的;
			//如果没有调用next将是不合法的,会导致IllegalStateException异常

		}
	}
}

  在iterator 中他的remove的元素是他在next中最后一个next的元素!

时间: 2024-10-31 23:35:55

iterator的romove方法的注意事项的相关文章

微信公众平台群发消息的方法及注意事项

群发消息的方法 操作方法:登录微信公众平台(https://mp.weixin.qq.com)=>群发消息=>根据需要填写文字/语音/图片/视频/录音等内容后,选择对群发对象.性别.群发地区发送即可. 群发消息内容 目前支持群发的内容:文字.语音.图片.视频.图文消息. 1.群发内容中需添加文字+图片+视频,可先在“素材管理”中设置图文消息,然后群发时选择“图文消息”类型即可. 2.上传至素材管理中的图片.语音可多次群发,没有有效期. 3.群发图文消息的标题上限为64个字节: 4.群发内容字数

EGOImageView的使用方法及注意事项

1.下载EGOImageView及其相关的类库 EGOImageLoading 将EGOCache.EGOImageButton.EGOImageView.EGOImageLoader全部添加到工程下(拷贝) 2.EGOImagView使用代码如下 [plain] view plaincopy EGOImageView *imageView = [[EGOImageView alloc] initWithPlaceholderImage:[UIImage imageNamed:@"placeho

Iterator的remove方法可保证从源集合中安全地删除对象(转)

import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorTest{ public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("Test1"); list.add("Test2&qu

Dubbo+zookeeper使用方法以及注意事项

Dubbo+zookeeper使用方法以及注意事项 最近在一个项目中想做一个数据库查询的服务,目的是将数据库查询这块从程序中脱离出来,形成一个公共的服务平台,大家都可以调用,经过考虑决定选用Dubbo+zookeeper这个经典的组合来实现,以下记录我事件中遇上的问题,希望大家可以借鉴,同时对自己也是一种备忘吧! 1.对应的包下载: 基本就是Spring的包+zookeeper的包+dubbo的包 生产部分配置如下 <?xml version="1.0" encoding=&qu

3.3 方法的注意事项

/* 方法的注意事项: A:方法不调用不执行 B:方法与方法是平级关系,不能嵌套定义 C:方法定义的时候参数之间用逗号隔开 D:方法调用的时候不用在传递数据类型 E:如果方法有明确的返回值,一定要有return带回一个值 */ class FunctionDemo2 { public static void main(String[] args) { /* 错误的 public static int sum(int a,int b){ return a + b; } */ //sum(10,20

使用OpenSSL工具制作X.509证书的方法及其注意事项总结

如何使用OpenSSL工具生成根证书与应用证书 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 一.步骤简记 // 生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认) openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt // 为顶级CA的私钥文件去除保护口令 openssl rsa -in C

C++ 开发OCX 的方法和注意事项

C++ 开发OCX 的方法和注意事项 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象.统一数据传输.OLE文档.属性页.永久存储以及OLE自动化等. ActiveX控件作为基本的界面单元,必须拥有自己的属性和方法以适合不同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的 IDispatch接口来支持.除了属性和方法外,ActiveX控件还具有区别于

Java Iterator的remove方法

  public static void tt(){     List<String> list = new ArrayList<String>();     list.add( "0" );     list.add( "1" );     list.add( "2" );     list.add( "3" );     list.add( "4" );     list.add

Linux任务调度进程crontab的使用方法和注意事项

参考文章:Linux任务调度进程crond命令的使用方法和注意事项 一.crond简介 概念 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该词来源于希腊语 chronos(χρ?νο?),原意是时间.而crond正是它的守护进程. crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,