2 qixinbruce qixinbruce 于 2016.03.21 10:43 提问

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

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

4个回答

u014633019
u014633019   2016.03.21 11:07
已采纳

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

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.21 12:00
Map的遍历有两种方法,一种是遍历Set,另一种是通过Entry。没有迭代器这种方法的。
Royal_lr
Royal_lr   Ds   Rxr 2016.03.21 14:33

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

qq_29816519
qq_29816519   2016.03.22 09:42

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Iterator遍历集合时不可以删除集合中的元素问题
本人菜鸟一枚,博客用于记录编程是遇到的问题,便于以后随时复习。 Iterator是工作在一个独立的线程中,拥有一个mutex锁。Iterator被创建后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针向后面移动的时候就找不到要迭代的对象,按照fail-fast原则,Iterator会马上抛出 java.util.ConcurrentMo
Map使用Iterator遍历输出
Map使用Iterator遍历输出
【JAVA学习】java中怎么遍历HashMap(Iterator迭代器遍历)
一、 HashMap   staff   =   new   HashMap();  添加关键字值对,自己写  遍历    Set     entries   =   staff.entrySet();  Iterator   iter   =   entries.iterator();  while(iter.hasNext())  {        Map.Entry  
Map的Iterator输出的问题
Map集合使用Iterator进行遍历输出 Map.Entry
利用map遍历器Iterator遍历map集合的实例。
代码如下: List> beanList = new ArrayList>(); for (Iterator i = map.keySet().iterator(); i.hasNext();) { Object key = i.next(); beanList.add(map.get(key));    }
java Map 遍历方法
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) {
遍历hashmap的键值一,通过 keySet()方法
/** * 遍历hashmap的键值,通过 keySet()方法 * @author gulijiang * */ public class HashMapTest1 { public static void main(String[] args) { HashMap hashMap = new HashMap(); hashMap.put("a", "aa");
entrySet用法 以及遍历map的用法
keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry 1.keySet() Map map=new HashMap(); Iterator it=map.keySet().iterator(); Object key; Object value; while(it.hasNe
在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
众所周知,在使用迭代器遍历 STL 容器时,需要特别留意是否在循环中修改了迭代器而导致迭代器失效的情形。下面我来总结一下在对各种容器进行正向和反向遍历过程中删除元素时,正确更新迭代器的用法。首先,要明白使用正向迭代器(iterator)进行反向遍历是错误的用法,要不干嘛要有反向迭代器呢(reverse_iterator)。其次,根据容器的特性,遍历删除操作的用法可以分为两组,第一组是 list 和 vector,第二组是 map 和 set。
java Map的keySet方法,并遍历Map的值
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class MapDemo { public static void main(String[] args) { //HashMap不是按你存的顺序存的,是按照Hash表顺序存储的