使用Iterator遍历map以及list用法

简介: 使用Iterator遍历map以及list用法

Iterator接口简介:

  Java中的Iterator**功能比较简单,只能单向移动:
  (1) 使用方法iterator()要求容器返回一个Iterator。
   Iterator iter = list.iterator(); // 注意iterator,首字母小写
   第一次调用Iterator的next()方法时,它返回序列的第一个元素。
   注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
  (2) 使用next()获得序列中的下一个元素。
  (3) 使用hasNext()检查序列中是否还有元素。
  (4) 使用remove()将迭代器新返回的元素删除。

代码如下(示例):

public class IteratorTest {
    public static void main(String[] args) {
        //Map遍历
        Map<String,String> pets = new HashMap<String,String>();
        pets.put("dog","ww");
        pets.put("cat","ee");
        pets.put("pig","rr");
        String name="";
       /*
         *Entry<String, String>表示map中键值对都是String类型的
         *pets.entrySet()是把HashMap类型的数据转换成集合类型
         *pets.entrySet().iterator();是去获得这个集合的迭代器,保存在it中
         *
        */
        Iterator<Map.Entry<String, String>> it = pets.entrySet().iterator();

        while (it.hasNext()){
            Map.Entry entry = it.next(); //获得map中的每一个键值对
            System.out.println(entry);
            name =entry.getValue().toString();
            System.out.println(name);
        }
        //list遍历
        List l = new ArrayList();
        l.add("a");
        l.add("b");
        l.add("c");
        //迭代器用于while循环
        Iterator iter = l.iterator();
        while(iter.hasNext()){
            String str = (String) iter.next();
            System.out.println(str);
        }
       }

    }

运行结果:

在这里插入图片描述

目录
相关文章
|
19天前
|
安全 Java 数据库连接
让我们讲解一下 Map 集合遍历的方式
我是小假 期待与你的下一次相遇 ~
75 43
|
2月前
|
存储 安全 Go
Map的遍历与判断键是否存在-《Go语言实战指南》
本文介绍了 Go 语言中对 `map` 的常见操作,包括遍历所有项和判断键是否存在。通过 `for range` 可以遍历 `map` 的键值对、仅键或仅值(需忽略键)。注意,`map` 遍历顺序是随机的。判断键是否存在时,使用双赋值语法 `value, ok := map[key]`,其中 `ok` 表示键是否存在。直接访问不存在的键会返回类型的零值,可能导致逻辑错误。掌握这些机制可更安全高效地处理键值对数据。
|
1月前
|
存储 JavaScript 前端开发
for...of循环在遍历Set和Map时的注意事项有哪些?
for...of循环在遍历Set和Map时的注意事项有哪些?
47 0
|
3月前
|
JavaScript 前端开发 开发者
flat、flatmap与map的用法区别
本文介绍了 JavaScript 数组方法 `flat()`、`flatMap()` 和 `map()` 的用法及区别。`flat()` 可按指定深度递归展平数组,参数为深度,默认一层;`flatMap()` 结合了 `map()` 和 `flat()` 功能,返回一维数组,长度可能不同于原数组;而 `map()` 返回与原数组长度一致的新数组。通过多个代码示例展示了三者的功能和差异,帮助开发者更好地理解和使用这些方法。
316 0
使用 entrySet 遍历 Map 类集合 KV
使用 entrySet 遍历 Map 类集合 KV
|
7月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
134 18
你对Collection中Set、List、Map理解?
|
7月前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
132 20
|
7月前
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
300 2
|
7月前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
206 12
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
1214 1