首页 > 代码库 > Map迭代器两种遍历方式
Map迭代器两种遍历方式
/*
map接口中没有迭代器,那么该怎么遍历?
1:Set<K> keySet() :获取到所有的键,存储到一个Set集合中,并返回该集合,因为Set有迭代器,
每次迭代出来的是一个键,再根据键来得到值
2:Set<Map.Entry<K,V>> entrySet():获取到所有的键值对儿形成的映射关系,存到一个Set集合中,再迭代这个集合
每次迭代出来的是一个映射关系,从这个映射关系中既可以得到键,也可以得到值
这种映射关系是Map.Entry<K,V>类型的
Entry是定义在Map中的一个静态成员,是一个接口
Entry为什么定义在Map里边儿?
有了集合,有了集合中的键值对儿,才会存在映射关系,所以映射关系是对集合内部的事物描述
所以定义在Map的内部
map接口中没有迭代器,那么该怎么遍历?
1:Set<K> keySet() :获取到所有的键,存储到一个Set集合中,并返回该集合,因为Set有迭代器,
每次迭代出来的是一个键,再根据键来得到值
2:Set<Map.Entry<K,V>> entrySet():获取到所有的键值对儿形成的映射关系,存到一个Set集合中,再迭代这个集合
每次迭代出来的是一个映射关系,从这个映射关系中既可以得到键,也可以得到值
这种映射关系是Map.Entry<K,V>类型的
Entry是定义在Map中的一个静态成员,是一个接口
Entry为什么定义在Map里边儿?
有了集合,有了集合中的键值对儿,才会存在映射关系,所以映射关系是对集合内部的事物描述
所以定义在Map的内部
*/
import java.util.*; class Demo { public static void main(String[] args) { HashMap<String,String> map = new HashMap<String,String>(); map.put("001","zhangsan"); map.put("002","xuzhong"); map.put("003","lisi"); //使用 entrySet()遍历集合 Set<Map.Entry<String,String>> entry = map.entrySet(); Iterator<Map.Entry<String,String>> ite = entry.iterator(); while(ite.hasNext()) { Map.Entry<String,String> en = ite.next(); String key = en.getKey(); String value = http://www.mamicode.com/en.getValue();>Map迭代器两种遍历方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。