黑马程序员技术交流社区
标题:
HashMap size陷阱
[打印本页]
作者:
nblity007
时间:
2016-8-4 21:14
标题:
HashMap size陷阱
错误的写法:
Map map = new HashMap(collection.size());
for (Object o : collection) {
map.put(o.key, o.value);
}
这里可以参考guava的Maps.newHashMapWithExpectedSize的实现. 用户的本意是希望给HashMap设置初始值, 避免扩容(resize)的开销. 但是没有考虑当添加的元素数量达到HashMap容量的75%时将出现resize。
正确的写法:
Map map = new HashMap(1 + (int) (collection.size() / 0.75));
作者:
caolufo
时间:
2016-8-5 00:17
考虑的很周全
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2