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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 常佳杰 中级黑马   /  2012-6-18 08:07  /  1527 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 常佳杰 于 2012-6-18 09:17 编辑

HashMap<String,Integer> hm = new HashMap<String,Integer>();//泛型的综合案例
hm.put("jjj",21);//插入数据
hm.put("asdf",26);
Set<Map.Entry<String,Interger>> entrySet = hm.entrySet();//hm.entrySet()的重要作用是什么呀?
for(Map.Entry<String,Integer> entry : entrySet){
     System.out.println(entry.getKey() + ":" + entry.getValue();
}//

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 视频里说得更清楚

查看全部评分

5 个回复

倒序浏览
public Set<Map.Entry<K,V>> entrySet()返回此映射所包含的映射关系的 Set 视图。 该 set 受映射支持,所以对映射的更改将反映在此 set 中,反之亦然。如果在对 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过在该迭代器返回的映射项上执行 setValue 操作除外),则迭代结果是不确定的。该 set 支持元素的移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从该映射中移除相应的映射关系。它不支持 add 或 addAll 操作。
这是 API 的解释
我觉得已经说的很清楚了,我来给你解释下
他说明的是 返回的 set (Map.entry<k,v>) 和原来haspMap(k,v) 之间的关系
因为在对set进行迭代的时候在底层 都是调用 iterator 迭代器来遍历 集合中的元素的,而且,该set 返回的 iterator 会锁定该集合,多以该API文档的解释是,通过迭代器自己的 remove 操作,或者通过在该迭代器返回的映射项上执行 setValue 操作除外),则迭代结果是不确定的。
说明在迭代器上返回的 对象上,用 set 的方法去修改 会出现意外,一般情况下 是 通过iterator 遍历的元素,就必须通过 itetator 的方法来修改!
这个方法的解释说的就是 在 iterator 上操纵元素,和在该SET 上操纵元素之间的联系和区别

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过Set集合的迭代功能把集合中的元素取出,因为无法直接取出Map集合中的所有键和值

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
黄奕豪 + 1 赞一个!
常佳杰 + 2 赞一个!

查看全部评分

回复 使用道具 举报
潘东升 发表于 2012-6-18 08:29
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过S ...

楼上的说的对,应该是 MAP 我写错了
回复 使用道具 举报
Java的泛型集合类:

HashMap<String,Integer> hm = new HashMap<String,Integer>();

  hm.put("zxx",19);

  hm.put("lis",18);


  Set<Map.Entry<String,Integer>> mes= hm.entrySet();

  for(Map.Entry<String,Integer> me : mes) {

   System.out.println(me.getKey() + ":" + me.getValue());

  }

l  对在jsp页面中也经常要对Set或Map集合进行迭代:

<c:forEach items=“${map}” var=“entry”>

       ${entry.key}:${entry.value}

</c:forEach>

代码:


Java代码  
1.HashMap<String, Integer> maps=new HashMap<String, Integer>();   
2.      maps.put("a", 1);   
3.      maps.put("b", 1);   
4.      maps.put("c", 1);   
5.        
6.      Set<Map.Entry<String, Integer>> entrySet=maps.entrySet();   
7.      for (Map.Entry<String, Integer> entry : entrySet) {   
8.         System.out.println(entry.getKey()+":"+entry.getValue());   
9.      }  
回复 使用道具 举报
潘东升 发表于 2012-6-18 08:29
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过S ...


有点懂了,之前也是这么理解,确定一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马