黑马程序员技术交流社区
标题:
关于Map的疑惑
[打印本页]
作者:
张振纲
时间:
2012-8-29 10:11
标题:
关于Map的疑惑
我们都知道Map也是集合的一种
用于存储键值对
将它内部所有元素取出,可以使用keyset是先将见都取出然后再获取值
那entrySet是如何是如何实现的
两者分别有什么好处?
作者:
唐志兵
时间:
2012-8-29 10:32
本帖最后由 唐志兵 于 2012-8-29 11:10 编辑
public class setDemo {
public static void main(String[] args) {
HashMap<String, String> hm = new HashMap<String, String>();
String value = null;
Map.Entry<String, String> entry = null;
hm.put("1", "hei");
hm.put("2", "ma");
hm.put("3", "hao");
Set<String> s = hm.keySet(); //这里使用keyset迭代集合
Iterator<String> it = s.iterator();
while(it.hasNext()){
value = it.next();
System.out.println(value + " = " + hm.get(value));
}
System.out.println("------------------------");
Set<Map.Entry<String, String>> ss = hm.entrySet(); //使用entryset迭代集合。
Iterator<Map.Entry<String, String>> it2 = ss.iterator();
while(it2.hasNext()){
entry = it2.next();
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
}
复制代码
entrySet() 返回此映射所包含的映射关系的 Set 视图。
keySet() 返回此映射中所包含的键的 Set 视图。
因为keyset返回的只是键(key)的视图,所以还需要hm.get(value)经过查询才能获取到 值(value)。
区别就是这里了,一个是键视图,一个是返回 映射关系视图。
作者:
王金科
时间:
2012-8-29 11:35
keySet()返回的是此Map集合中包含键的Set集合,有了key,就可以通过 对象.get(key)获取值
entrySet()返回的是此Map集合中,包含映射关系的Set集合,类型是Map.Entry,
有了关系,就可以通过 对象.getKey()获取键, 对象.getValue()获取值
正如楼上兄弟中代码演示的那样
作者:
李志群
时间:
2012-8-29 19:43
5,获取map中所有的元素(对应关系)。
Map是不具备迭代器的,获取原理就是将map集合先转成set集合,然后在使用迭代器。
重要方法一: 必须会的重点: Set<key(丈夫类型)> keySet();方法
重要方法二:Set<Map.Entry<k,v>>entrySet(); 返回的是结婚证,结婚证是唯一的啊 ,就可以取出丈夫和妻子。
结婚证渠道了就调用 get key(); get value();来获取丈夫和妻子。
接口Map.Entry<K,V>是map类的嵌套类。 其实entry就是map接口中的一个内部接口而已。
作者:
李志群
时间:
2012-8-29 19:45
keyset的方法是知道丈夫 就可以找到妻子,Entryset是 代表的结婚证, 你拿结婚证就可以找到这对夫妻(丈夫和妻子)我这是比喻的哈哈 毕老师有讲过 特经典, 特棒!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2