A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima_llt 高级黑马   /  2015-4-18 17:40  /  488 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

二、查阅API
方法
Set<Map.Entry<K,V>> entrySet()
          返回此映射所包含的映射关系的 Set 视图。
-------------------------------------------------------------------
接口 Map<K,V>                  
嵌套类摘要
static interface Map.Entry<K,V>
          映射项(键-值对)。

--------------------------------------------------------------------
接口 Map.Entry<K,V>
正在封闭接口:
Map<K,V>

映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,其中的元素属于此类。
获得映射项引用的唯一 方法是通过此 collection 视图的迭代器来实现。
这些 Map.Entry 对象仅 在迭代期间有效。

方法摘要
boolean equals(Object o)
          比较指定对象与此项的相等性。
K getKey()
          返回与此项对应的键。
V getValue()
          返回与此项对应的值。
int hashCode()
          返回此映射项的哈希码值。
V setValue(V value)
          用指定的值替换与此项对应的值(可选操作)。


Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。
/*
interface Map
{
        public static interface Entry
        {
                public abstract Object getKey();
                public abstract Object getValue();

        }
}

class HashMap implements Map
{
        class Hahs implements Map.Entry
        {
                public  Object getKey(){}
                public  Object getValue(){}
        }
       
}
*/
/*
-----------------------------------------------------------------------
思路和原理都与方式一一样!
1 Map把所有的键值映射关系存入Set<Map.Entry<String,String>>
2 在Set中调用迭代器
3 取出键值映射关系
4 取出键和值

*/
  1. import java.util.*;
  2. public class MapDemo2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 sop("方式二取出所有键值");
  7.                 getWay_2();
  8.         }
  9.        
  10.         //方式二取出键值
  11.         public static void getWay_2()
  12.         {
  13.                 //创建Map子类对象
  14.                 Map<String,String> map = new HashMap<String,String>();

  15.                 //添加键值对
  16.                 map.put("id001","Jack");
  17.                 map.put("id004","Tom");
  18.                 map.put("id002","Jane");
  19.                 map.put("id003","Jimmy");

  20.                 //打印原映射
  21.                 sop("原映射"+map);

  22.                 //1 Map把所有的键值映射关系存入Set
  23.                 Set<Map.Entry<String,String>> entry = map.entrySet();

  24.                 //2 获取迭代器
  25.                 for(Iterator<Map.Entry<String,String>> it = entry.iterator(); it.hasNext(); )
  26.                 {
  27.                         //3 取出键值映射关系
  28.                         Map.Entry<String,String> me = it.next();

  29.                         //4 取出键和值
  30.                         String key = me.getKey();
  31.                         String value = me.getValue();

  32.                         //5 打印
  33.                         sop("key="+key+",对应value="+value);
  34.                 }

  35.         }
  36.        

  37.         public static void sop(Object obj)
  38.         {
  39.                 System.out.println(obj);
  40.         }
  41. }
复制代码


第二种方式总结:
2,Set<Map.Entry<k,v>> entrySet:
将map集合中的映射关系存入到了set集合中,
而这个关系的数据类型就是:Map.Entry
Entry其实就是Map中的一个static内部接口。
为什么要定义在内部呢?
因为只有有了Map集合,有了键值对,才会有键值的映射关系。
关系属于Map集合中的一个内部事物。
而且该事物在直接访问Map集合中的元素。


方式二取出所有键值.jpg (80.19 KB, 下载次数: 0)

方式二取出所有键值.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马