黑马程序员技术交流社区
标题:
泛型的一些小疑惑已解决
[打印本页]
作者:
常佳杰
时间:
2012-6-18 08:07
标题:
泛型的一些小疑惑已解决
本帖最后由 常佳杰 于 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();
}//
作者:
李元峰
时间:
2012-6-18 08:28
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 上操纵元素之间的联系和区别
作者:
潘东升
时间:
2012-6-18 08:29
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过Set集合的迭代功能把集合中的元素取出,因为无法直接取出Map集合中的所有键和值
作者:
李元峰
时间:
2012-6-18 08:32
潘东升 发表于 2012-6-18 08:29
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过S ...
楼上的说的对,应该是 MAP 我写错了
作者:
sbeeqnui1987
时间:
2012-6-18 09:11
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 09:13
潘东升 发表于 2012-6-18 08:29
hm.entrySet()这个的作用也就是entrySet方法的作用,该方法是把Map集合转化为Set集合的一种方法,然后通过S ...
有点懂了,之前也是这么理解,确定一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2