当前位置: 代码迷 >> Java相关 >> 方法内频繁读取Map中的数据使用过渡变量是不是性能更好些
  详细解决方案

方法内频繁读取Map中的数据使用过渡变量是不是性能更好些

热度:31   发布时间:2016-04-22 20:47:15.0
方法内频繁读取Map中的数据使用过度变量是不是性能更好些
import java.util.HashMap;
import java.util.Map;


public class Test2 {

public static void main(String[]args){
Map<String,String> m = new HashMap();
m.put("A","123456");
Test2 t = new Test2();
t.f1(m);
t.f2(m);

}
Map f1(Map m){
if("1".equals(m.get("A").toString())||
"2".equals(m.get("A").toString())||
"3".equals(m.get("A").toString())){
System.out.println("true");

}else{
System.out.println("false");
}
return m;
}
Map f2(Map m){
String s = m.get("A").toString();
if("1".equals(s)||
"2".equals(s)||
"3".equals(s)){
System.out.println("true");

}else{
System.out.println("false");
}
return m;
}
}

是不是方法f2性能更好些呢?
t_jl1979这位朋友介绍的工具没搞明白。还是请大家帮忙指点一下
------解决思路----------------------
明显2好
你测一下性能不就知道了。
------解决思路----------------------
不知道诶

你用的是HashMap,在网上找了一下HashMap 的特点:.
引用
既然叫HashMap,那么它就具有哈希表的一些特点:(1)需要哈希方法,把关键字映射到哈希表中.......由于哈希表属于直接查找算法,在查询过程中,不需要进行过多的关键字比较,的所以HashMap的查询效率较高。......

所以,频繁读取HashMap对总的效率影响应该不是太大。

再有就是,我们写的代码是需要用JVM编译成字节码的。而编译过程中,JVM会优化代码什么样的代码,我暂时还不清楚。所以。。。。不知道诶~~~。不过,个人倾向于第二种写法
------解决思路----------------------
引用:
Quote: 引用:

明显2好
你测一下性能不就知道了。

不才。问下怎么测性能?


方法调用前后记录下时间,调用完成后相减,看用了多少时间
  相关解决方案