java中map为什么不能直接使用iterator遍历?

问题描述

java中map为什么不能直接使用iterator遍历?

求教大神:直接使用map的时候方法中不会显示iterator方法,而是要写Set set = map.keySet();才可以使用iterator方法,为什么map和set同为集合,map就不可以直接使用iterator方法?内部逻辑是什么?

解决方案

只有实现的collection集合才有iterator方法,比如List和se接口;而Map接口不能使用iterator方法,需要现获取set视图,即Set set = map.keySet();
set就可以使用了。

解决方案二:

Map的遍历有两种方法,一种是遍历Set,另一种是通过Entry。没有迭代器这种方法的。

解决方案三:

map和set以及list的结构不一样,,所以不能直接使用iterator遍历的,

解决方案四:

map存放的是一个个健值对,如果想遍历的话只有知道他的健才能得到他响应的值

时间: 2024-12-30 12:59:13

java中map为什么不能直接使用iterator遍历?的相关文章

c++-关于java中Map添加数据的问题

问题描述 关于java中Map添加数据的问题 我定义了Map revmap=new HashMap(); 但是当我向revmap中添加数据时总提示错误. revmap.put(num_vertices, p); 其中num_vertices是int型,p是Point2d型,错误提示让把num_vertices改为integer型是怎么回事? 补充内容: 其实我是看到了一个C++程序,需要把它该写为java程序,C++代码所用的数据结构如下: std::map<int, int> Map; st

Java中Map的排序问题详解_java

Map的种类 在Java中,Map的主要作用是存储键值对.由于是根据键得到值,所以不允许键重复.它主要有如下几个类别: HashMap: 最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致.如果需要同步,可以用Collections的sy

关于java中Map的九大问题分析_java

通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题.0.将Map转换为List类型在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set..它们都可以通过构造方法或者addAll()方法来转换为List类型.下面代码就说明了如何从Map中构造ArrayList: // key list List keyList = new ArrayList

Java中Map的遍历方法及性能测试_java

1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

JS自定义对象实现Java中Map对象功能的方法

这篇文章主要介绍了JS自定义对象实现Java中Map对象功能的方法,可实现类似Java中Map对象增删改查等功能,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS自定义对象实现Java中Map对象功能的方法.分享给大家供大家参考.具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象. 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容! 这里Key

JS自定义对象实现Java中Map对象功能的方法_javascript技巧

本文实例讲述了JS自定义对象实现Java中Map对象功能的方法.分享给大家供大家参考.具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象. 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!   这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作. 使用很简单,我先把工具类给大家看下: 复制代码 代码如下: /**  *

关于在java中map取值问题

问题描述 关于在java中map取值问题 Map,其中object为ArrayList,如何取值 解决方案 ArrayList al = (ArrayList)ordersMap.get("rows"); 解决方案二: 谢谢各位的回答,跟一楼说的一样,我已经把值取出来了 解决方案三: 一楼正解,强制转型即可. 解决方案四: map以key.value形式存在,你直接通过key获取value就可以了

Java 中Map 的用法详解_java

Map简介 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口. Map 接口提供三种collection 视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序.某些映射实现可明确保证其顺序,如 TreeMap 类:另一些映射实现则不保证顺序,如HashMap 类. 注:将可变对象用作映射键时必须格外小心.当对

java-请问Java中Map的实现原理

问题描述 请问Java中Map的实现原理 如题:请问Java中Map的实现原理,我们都知道map是键值对,那么在java底层是如何实现的,高手在哪里 解决方案 http://zhangshixi.iteye.com/blog/672697 解决方案二: java map实现原理 解决方案三: http://cmsblogs.com/?p=1212 解决方案四: http://zhangshixi.iteye.com/blog/672697