map.entrySet().iterator()

原文链接:

https://www.cnblogs.com/lxqiaoyixuan/p/7156944.html

https://www.cnblogs.com/zzzzw/p/4945915.html

迭代器(Iterator)

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

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

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

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

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

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

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

 

使用: Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型

    boolean hasNext():判断容器内是否还有可供访问的元素

    void remove():删除迭代器刚越过的元素

迭代使用方法:(迭代其实可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类)

 

Iterator> iter=map.entrySet().iterator();

获得map的迭代器,用作遍历map中的每一个键值对。Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。>表示map中的键值对都是String类型的。map.entrySet()是把HashMap类型的数据转换成集合类型。map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter里面。

迭代器这么用:
while(iter.hasNext()) {
Entry obj = it.next();//就能获得map中的每一个键值对了
}

Iterator iter;    // 声明一个迭代器,泛型里面是String类型,表示迭代元素是String类型的
Iterator> iter;    // 而你提供的要稍微复杂一点,迭代元素本身就是一个Entry键值对
Entry表示其key值是String,value值也是String。

后面部分:

HashSet set=map.entrySet();//将map类型数据转换成集合set类型的。
iter=set.iterator();//获得集合的迭代器。迭代器只针对集合类型的数据,
因此map类型的必须先转换成集合类型才能使用迭代器去获取元素。

Entry首字母大写是因为它是java提供的类,类首字母大写这是JavaBean规范

keySet 获得的只是key值的集合;
values 获得的是value集合;
entryset 获得的是键值对的集合

你可能感兴趣的:(map.entrySet().iterator())