文档章节

iterator remove

恋空御月
 恋空御月
发布于 2017/02/17 11:55
字数 289
阅读 7
收藏 0

迭代器(Iterator)

  迭代器是一种设计模式(游标(Cursor)模式),它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

  Java中的Iterator功能比较简单,并且只能单向移动:

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

  (2) 使用next()获得序列中的下一个元素。

  (3) 使用hasNext()检查序列中是否还有元素。

  (4) 使用remove()将迭代器新返回的元素删除。

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

迭代器应用:
 list l = new ArrayList();
 l.add("aa");
 l.add("bb");
 l.add("cc");
 for (Iterator iter = l.iterator(); iter.hasNext();) {
  String str = (String)iter.next();
  System.out.println(str);
 }
 /*迭代器用于while循环
 Iterator iter = l.iterator();
 while(iter.hasNext()){
  String str = (String) iter.next();
  System.out.println(str);
 }
 */

© 著作权归作者所有

恋空御月
粉丝 8
博文 137
码字总数 91979
作品 0
浦东
程序员
私信 提问
Java Map在遍历过程中删除元素

map遍历判断筛选删除时 如果对map使用put、remove或clear方法(例如map.remove直接删除),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationException异常被抛出)...

开源小菜鸟2333
2018/02/23
763
0
我所了解的Iterator设计模式

容器的可替换性 底层容器实现可以随意改变,而对用户的使用不产生影响,说白了,就是要统一接口,毕竟开发者只需要面向接口编程 Iterator设计思想 怎么给容器提供一种遍历方式?你可能会认为...

牛板腩天下第一
2018/02/23
0
0
ArrayList什么情况会抛出ConcurrentModificationException

近日,在看ArrayList的源码实现。发现很多情况会抛出ConcurrentModificationException。下面总结一下大致发生的情况。首先,ArrayList不是线程安全的。首先来看一个例子: 运行结果: 由例子...

Antin_zhu
2016/07/02
272
0
Guava学习笔记-自定义迭代器

问题描述 实现一个跳过null值的迭代器 [null,"1","2","3",null,"4",null]->["1","2","3","4"] [null]->[] []->[] 原来 我需要写的如此复杂,才能保持Iterator特性,针对第一个case连续调用5......

gongweixin
2016/01/23
59
0
聊聊rocketmq的BrokerHousekeepingService

序 本文主要研究一下rocketmq的BrokerHousekeepingService BrokerHousekeepingService org/apache/rocketmq/namesrv/routeinfo/BrokerHousekeepingService.java 实现了ChannelEventListener接......

go4it
2018/08/03
20
0

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
27分钟前
5
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
30分钟前
5
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
38分钟前
3
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
42分钟前
3
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
42分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部