1.什么是Iterator?

Iterator提供了对集合迭代的方法,每个集合都可以返回一个Iterator实例,迭代器可以在迭代的过程中删除集合的底层元素,但是不能直接调用集合的remove()方法移除,可以使用Iterator中的remove()方法进行移除。
  • 1

2.在Iterator接口中定义了三个方法:

- hasNext()    如果有元素则继续迭代,返回true
- next()       返回迭代的元素
- remove()     移除返回的元素
  • 1
  • 2
  • 3

3.在list集合中是用Iterator

Iterator中只提供了删除的方法,如果想要在遍历的过程中添加元素可以是用ListIterator,ListIterator继承了Iterator接口,提供一下几种方法:
  • 1
  1. void hasPrevious() 判断游标前面是否有元素;
  2. Object previous() 返回游标前面的元素,同时游标前移一位。游标前没有元素就报 java.util.NoSuchElementException 的错,所以使用前最好判断一下;
  3. int nextIndex() 返回游标后边元素的索引位置,初始为 0 ;遍历 N 个元素结束时为 N;
  4. int previousIndex() 返回游标前面元素的位置,初始时为 -1,同时报 java.util.NoSuchElementException 错;
  5. void add(E) 在游标 前面 插入一个元素,注意,是前面
  6. void set(E) 更新迭代器最后一次操作的元素为 E,也就是更新最后一次调用 next() 或者 previous() 返回的元素。注意,当没有迭代,也就是没有调用 next() 或者 previous() 直接调用 set 时会报 java.lang.IllegalStateException 错;
  7. void remove() 删除迭代器最后一次操作的元素,注意事项和 set 一样。
import com.sun.media.sound.SoftTuning;import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;/*** Created by lixiaoshuang on 2018/1/29.*/
public class Iterator {public static void main(String[] args) {//使用iterator移除元素List list = new ArrayList();list.add(1);list.add(2);list.add(3);java.util.Iterator iterator = list.iterator();while (iterator.hasNext()) {if (iterator.next().equals(2)) {iterator.remove();}}System.out.println(list.toString());//使用ListIterator进行操作List list2 = new ArrayList();list2.add(4);list2.add(5);list2.add(6);ListIterator listIterator = list2.listIterator();while (listIterator.hasNext()) {Object next = listIterator.next();if (next.equals(5)) {//移除5,并在5的位置上添加一个4listIterator.remove();listIterator.add(4);System.out.println("判断游标前边是否有元素:" + listIterator.hasPrevious());System.out.println("返回游标前边的索引元素:" + listIterator.previousIndex());System.out.println("返回游标后边的索引元素:" + listIterator.nextIndex());}//更新6为8if (next.equals(6)) {listIterator.set(8);}}System.out.println(list2.toString());}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

4.在set集合中使用Iterator

public class SetIterator {public static void main(String[] args){Set set = new HashSet();set.add(1);set.add(2);set.add(3);java.util.Iterator iterator = set.iterator();while (iterator.hasNext()){if (iterator.next().equals(2)){iterator.remove();}}System.out.println(set.toString());}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5.在Map集合中使用Iterator

public class MapOutput {  /** * @param args */  public static void main(String[] args) {  // TODO Auto-generated method stub  Map<Integer,String> map = new HashMap<Integer,String>();  map.put(1, "aaa");  map.put(2, "bbb");  map.put(3, "ccc");  map.put(4, "ddd");  Iterator<Map.Entry<Integer,String>> it=map.entrySet().iterator();  while(it.hasNext()){  Map.Entry<Integer,String> entry=it.next();  System.out.println("key="+entry.getKey()+","+"value="+entry.getValue());  }  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet"></div>

iterator的用法相关推荐

  1. boost::iterator::permutation_iterator用法的测试程序

    boost::iterator::permutation_iterator用法的测试程序 实现功能 C++实现代码 实现功能 boost::iterator::permutation_iterator ...

  2. boost::iterator的用法测试实例

    boost::core模块boost::iterator的用法测试实例 实现功能 C++实现代码 实现功能 boost::core模块boost::iterator的用法测试实例 C++实现代码 #i ...

  3. STL迭代器(iterator)用法详解

    C++ STL迭代器(iterator)用法详解 无论是序列容器还是关联容器,最常做的操作无疑是遍历容器中存储的元素,而实现此操作,多数情况会选用"迭代器(iterator)"来实 ...

  4. 迭代器Iterator的用法

    迭代器Iterator的用法 和枚举一样,表示一些对象的集合,主要用于对数组进行遍历,定义如下: package java.util; public interface Iterator { bool ...

  5. C++迭代器(iterator)用法

    C++迭代器(iterator)用法 1.简述 迭代器是一种检查容器内元素并遍历元素的数据类型 2.vector示例 //将vector的元素值全部修改为2 vector<int> v(1 ...

  6. Iterator 的用法

    今天在看别人程序时看到 Iterator 在程序中用法,感觉自己对这个Iterator 好像不知道似的,确实也不太清楚,平时写程序也没有用过,到网上查了下它的用法,感觉也不是很很难,做过笔记.以前可以 ...

  7. iterator的用法 | reverse_iterator的封装实现

    进阶C++__STL__容器list使用方法[简单易懂]https://blog.csdn.net/qq_61386381/article/details/125922910 进阶C++__STL__ ...

  8. mysql迭代器_迭代器是什么,C++ STL迭代器(iterator)用法详解

    无论是序列容器还是关联容器,最常做的操作无疑是遍历容器中存储的元素,而实现此操作,多数情况会选用"迭代器(iterator)"来实现.那么,迭代器到底是什么呢? 我们知道,尽管不同 ...

  9. s:iterator的用法

    转自:http://blog.sina.com.cn/s/blog_5bd6b451010130if.html struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简 ...

  10. java it_Java中的Iterator的用法

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

最新文章

  1. Linux驱动之LCD驱动编写
  2. 安卓问题总结一(The connection to adb is down)
  3. REPL (read-evaluate-print-loop)概念-读取评估打印循环
  4. tcpdump抓两个网卡的包_tcpdump 抓包统计 分享助,请问用tcpdump抓包后,如何查看每个包...
  5. 回顾 | 进击吧! Blazor !第四期 组件开发
  6. centos 7下安装mysql_Centos7下安装MySQL5.7(数据库的最全安装方法)
  7. 32路视频光端机性能指标及视频特性介绍
  8. 电视如果使用独立显卡会怎么样?
  9. mysql 窗口函数_7、MySQL高级功能(窗口函数)
  10. centos mysql5.7主从同步配置_centos 7 配置 mysql 5.7 主从复制
  11. 高职高考数学可以用计算机吗,将高职高考数学成绩从39分提到120分,3个月时间可能吗?...
  12. springboot启动类
  13. css元素可拖动,css3实现可拖动的魔方3d效果
  14. PHP 一一 微信公众号开发(二次开发)
  15. 计算机名打印机无法共享,打印机共享不了怎么回事 打印机共享不了原因和解决办法【详解】...
  16. 北京师范大学计算机试题二答案,北京师范大学期末计算机试题二
  17. 对挣钱与財富等三个问题的思考
  18. Retrying connect to server: xxx.xxx.xxx.xxx:8032. Already tried 0 time(s)
  19. php音频上传失败,flash导入音乐失败怎么办
  20. 拼多多新手卖家必备知识,你掌握了几点?

热门文章

  1. 苹果计算机访问限制,苹果手机访问限制密码忘了怎么办
  2. MacOS打开多个微信的方法(代码+脚本)
  3. 弦外雨,晚风急 吹皱芳华太无情
  4. tcp_sock_struct
  5. latex图片及其标题居右
  6. 【羊了个羊】什么!第二关难如上青天,能不能简单版??
  7. Monkey工具详解
  8. 四象限变频器技术介绍
  9. java 三角形类 Triangle
  10. Android:执行exec app_process启动jar失败原因