黑马程序员技术交流社区

标题: Map集合中的Entry<K,V>是怎么个回事啊, [打印本页]

作者: 李晓俊老师    时间: 2012-2-27 18:19
标题: Map集合中的Entry<K,V>是怎么个回事啊,
它也是集合么,那是Set还是Map啊
作者: 杨盼    时间: 2012-2-27 19:01
对于Map接口来说本身不能进行迭代(如Iterator、foreach)进行输出,因为Map接口存放一对值,而Iterator每次只能找到一个值,所以要想使用迭代输出则要按下面的步骤:
1、将Map接口的实例通过entrySet()方法变为Set接口对象
2、通过Set接口实例化为Iterator实例化
3、通过Iterator迭代输出,每个内容都是Map.Entry对象
4、通过Map.Entry进行Key—>value的分离

Map.Entry是接口,Map中数据都是通过Map.Entry保存的,看个例子吧(以Iterator输出为例)
  1. import java.util.HashMap ;
  2. import java.util.Map ;
  3. import java.util.Set ;
  4. import java.util.Iterator ;
  5. public class IteratorDemo04{
  6.         public static void main(String args[]){
  7.                 Map<String,String> map = null; // 声明Map对象,其中key和value的类型为String
  8.                 map = new HashMap<String,String>() ;
  9.                 map.put("mldn","www.mldn.cn") ;        // 增加内容
  10.                 map.put("zhinangtuan","www.zhinangtuan.net.cn") ;        // 增加内容
  11.                 map.put("mldnjava","www.mldnjava.cn") ;        // 增加内容
  12.                 Set<Map.Entry<String,String>> allSet = null ;
  13.                 allSet = map.entrySet() ;
  14.                 Iterator<Map.Entry<String,String>> iter = null ;
  15.                 iter = allSet.iterator() ;
  16.                 while(iter.hasNext()){
  17.                         Map.Entry<String,String> me = iter.next() ;
  18.                         System.out.println(me.getKey() + " --> " + me.getValue()) ;
  19.                 }
  20.         }
  21. };
复制代码

作者: 王--明    时间: 2012-2-27 19:24
从所周知Map集合都是以键值对出现的。
Map集合的两种取出方式:
1:Set<k> keySet;将Map中所有的键存入到Set集合中,因为Set中有迭代器,
        所以可以迭代方式,取出所有的键,在根据get方法,获取每一个键对应的               
2:   Map集合的取出原理;将Map集合转成Set集合,在通过迭代器取出。
Set<Map.Entry<k,v>> entrySet;将Map集合中的映射关系存到Set集合中,
        而这个关系的数据类型就是Map.Entry<k.v>
             getKey() -->返回与此项对应的键。
             getValue() --> 返回与此项对应的值。
  

           




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2