黑马程序员技术交流社区
标题:
Map集合的两种获取方式的比较?
[打印本页]
作者:
liang926
时间:
2014-8-10 22:12
标题:
Map集合的两种获取方式的比较?
本帖最后由 liang926 于 2014-8-14 00:36 编辑
/*
* Map集合的获取方式
*/
import java.util.*;
public class MapDemo1 {
public static void main(String[] args) {
method();
System.out.println("*******下面是 第二种entrySet()方法*********************");
method_1();
}
/*
* 第二种entrySet()方法
*/
private static void method_1(){
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
//使用Map接口方法entrySet,获取键值对映射关系对象Entry,
//对象存储到Set集合
Set<Map.Entry<String, Integer>> set = map.entrySet();
//迭代器,迭代Set集合
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while(it.hasNext()){
//it.next()获取出来的是什么,键值对映射关系Map.Entry
Map.Entry<String, Integer> me = it.next();
//利用键值对映射关系对象中的方法getKey getValue
String key = me.getKey();
Integer value = me.getValue();
System.out.println(key+"....."+value);
}
}
/*
* 第一种keySet()方法
*/
private static void method(){
Map<String,Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
Set<String> set = map.keySet();//ZZZ
//迭代Set集合
Iterator<String> it = set.iterator();
while(it.hasNext()){
String key = it.next();//it.next方法,返回的是String类,Map集合中的键
Integer value = map.get(key);//通过Map集合的get()方法,传递键,获取值
System.out.println(key+"...."+value);
}
}
}
复制代码
请问这两中方式各自的优缺点,在什么情况下用哪一种会比较合适?
我觉得KeySet()方法的代码能比entrySet的代码简洁些,KeySet()方法我更能接受,不知两者比较还有哪方面的优点,谢谢大家的指导!
作者:
liqi
时间:
2014-8-10 22:25
看你的需求了,一个只能取出值,一个能取出键值对
作者:
zhxu188
时间:
2014-8-10 22:37
相对来说keySet是比entrySet简洁点,其实用任何一个都一样,到目前为止还没遇到只能用一种的
作者:
fantacyleo
时间:
2014-8-10 22:51
键值对在Map内部就是以Map.entry的形式存在的,对键值对的操作也就是对Map.entry的操作,包括你调用get方法,取出keySet,都离不开Map.Entry。所以,从效率上来说,Map.Entry会更高一些啦
作者:
star5603
时间:
2014-8-11 09:14
我比较喜欢用Map.Entry。。。。
作者:
贾浩田
时间:
2014-8-12 10:54
这两种方法的最终目的就是获取键值对,用哪一个都行
作者:
sdfe
时间:
2014-8-12 11:42
我觉得keyset要灵活一些。
作者:
zhouqun
时间:
2014-8-12 21:28
我个人觉得没必要研究这么深
作者:
Moriarty
时间:
2014-8-12 22:28
通过获得键的set集合和键值映射来实现的
作者:
jackhai9
时间:
2014-8-12 22:32
看心情,追求效率的话用entry。
作者:
席杰
时间:
2014-8-12 22:52
entrySet比KeySet效率高
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2