浅谈Java迭代器

Posted 时间最考验人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈Java迭代器相关的知识,希望对你有一定的参考价值。

迭代器Iterator

概述:

迭代器(Iterator):它不是一个容器,它是一种用于访问容器的方法,可用于迭代 List、Set和Map等容器。

迭代:一个一个的往外拿。

作用:帮我们遍历或者拿到容器里边的数据。

常用操作:

  1. next() 下一个

  2. hasNext() 判断是否存在下一个元素

  3. remove() 删除元素

遍历List、Set和Map:

1. List的遍历:

List list = new ArrayList();

list.add("小明");
list.add("小红");
list.add("小蓝");
list.add("小绿");

【方法一】

for (int i = 0; i < list.size(); i++) {
    String s = (String) list.get(i);// 强转
    System.out.println(s);
}

【方法二】

Iterator it = list.iterator(); // 创建一个List的迭代器

while(it.hasNext()){// 判断有没有下一个元素
   String s = (String) it.next(); //也要强转
    System.out.println(s);
}

注:迭代器是一次性的东西,用完了,拿完了再去用就会报错!

2. Set的遍历:

Set set = new HashSet();
set.add("小明");
set.add("小红");
set.add("小蓝");
set.add("小绿");

Iterator it = set.iterator();// 创造一个Set迭代器

while(it.hasNext()){
     String s = (String) it.next();// 强转
     System.out.println(s);
      }

3. Map的遍历:

Map map = new HashMap();

map.put("明明","小明");
map.put("红红","小红");
map.put("蓝蓝","小蓝");
map.put("绿绿","小绿");

【方法一】

// 循环遍历拿到它的每一项(key和value)———— 拿到key就能拿到value————KeySet()

Set set = map.keySet();// 拿到所有的key
Iterator it = set.iterator();// 放到迭代器
while (it.hasNext()){
String key = (String) it.next(); // 所有的key
    System.out.println(map.get(key));// 通过key获取value:get()
}

【方法二】

Set set = map.entrySet();// set里面装的是entry
Iterator it = set.iterator();

while (it.hasNext()){
Map.Entry entry = (Map.Entry) it.next(); // 拿到的是entry
    System.out.println(entry.getKey()); // 从entry里拿到key
    System.out.println(entry.getValue()); // 从entry里拿到value
}

方法二图解:

image

总结:

java中提供了很多种容器,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些容器中的元素时,可以通过迭代器来完成。就比如,Set容器是一种非线性结构,数据没有下标,即没有索引,因此通过迭代器可以进行遍历操作。

以上是我对今天所学Java迭代器(Iterator)知识的一些个人总结与感悟,最后,感谢各位大佬们看到了这里!愿你韶华不负,青春无悔!

注:

由于自己刚刚开始学习Java不久,语言文字描述、技术等各方面还不是很好,如果文章有任何错误和建议,请各位大佬尽情评论留言!如果这篇文章对你有些许帮助,希望可爱亲切的您点个赞推荐一手,非常感谢啦!

image

以上是关于浅谈Java迭代器的主要内容,如果未能解决你的问题,请参考以下文章

闲话python 45: 浅谈生成器yield

Java源代码-迭代器模式

201621123062《java程序设计》第九周作业总结

浅谈java领域模式分层实现

Python学习笔记之二浅谈Python的yield用法

Java迭代器Iterator