Java Map遍历方式方式及性能测试
转自: <h2 style="color:rgb(34,34,34);border-bottom-color:rgb(238,238,238);border-bottom-width:1px;border-bottom-style:solid;font-size:18px;font-family:'microsoft yahei';">
<p style="color:rgb(68,68,68);font-family:'microsoft yahei';font-size:14px;"> <p style="color:rgb(68,68);font-family:'microsoft yahei';font-size:14px;"> 为了解遍历性能的真实差距,包括在遍历key+value、遍历key、遍历value等不同场景下的差异,我试着进行了一些对比测试。 <h2 style="color:rgb(34,238);border-bottom-width:1px;border-bottom-style:solid;font-size:18px;font-family:'microsoft yahei';"> 2. 对比测试 <p style="color:rgb(68,68);font-family:'microsoft yahei';font-size:14px;"> 一开始只进行了简单的测试,但结果却表明keySet的性能更好,这一点让我很是费解,不都说entrySet明显好于keySet吗?为了进一步地进行验证,于是采用了不同的测试数据进行更详细的对比测试。 <h3 style="color:rgb(34,238);border-bottom-width:1px;border-bottom-style:solid;font-size:14px;font-family:'microsoft yahei';"> 2.1 测试数据 <p style="color:rgb(68,68);font-family:'microsoft yahei';font-size:14px;"> 2.1.1 HashMap测试数据 <p style="color:rgb(68,68);font-family:'microsoft yahei';font-size:14px;"> HashMap-1,大小为100万,key和value均为String,key的值为1、2、3……1000000:
.keySet().iterator(); ?
?(iter.hasNext())?{ ?
? ? value?=?.(iter.next()); ?
}
>>?iter?=?map.entrySet().iterator(); ?
?(iter.hasNext())?{ ?
value?=?iter.next().getValue(); ?
}
>?entry:?map.entrySet())?{ ?
? ? value?=?entry.getValue(); ?
}
|
-
-
-
?(>?entry:?map.entrySet())?{ ?
? ? key?=?entry.getKey(); ?
? ? value?=?entry.getValue(); ?
}
?(.values())?{ ?
}
-
-
-
?(.(key); ?
}
?(Entry<.values())?{ ?
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
?(>?entry:?map.entrySet())?{ ?
? ? key?=?entry.getKey(); ?
? ? value?=?entry.getValue(); ?
}
?(.values())?{ ?
}
-
-
-
?(.(key); ?
}
?(Entry<.values())?{ ?
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
?(.(key); ?
}
?(Entry<.values())?{ ?
}