Java集合框架
徐乙
这个作者很懒,什么都没留下…
展开
-
面试必考:HashMap容量为2次幂的原因
学习自http://nanguocoffee.iteye.com/blog/907824static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}i = (n - 1) & hashhash方法可以计算一...原创 2018-03-22 17:58:25 · 7010 阅读 · 3 评论 -
HashMap 容量为2次幂的原理
学习自https://www.zhihu.com/question/20733617hashstatic final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}然后(n - 1) & hash首先介绍(n - 1)...原创 2018-05-25 17:39:39 · 666 阅读 · 0 评论 -
SparseArray
借鉴自http://blog.csdn.net/easyer2012/article/details/37871031稀疏数组用稀疏数组这样表示然后关注下二分查找代码即可static int binarySearch(int[] array, int size, int value) { int lo = 0; int hi = size - 1; while (lo &...原创 2018-02-15 15:38:51 · 220 阅读 · 0 评论 -
高性能地使用HashMap
设定初始容量HashMap扩容是有代价的,需要创建一个新桶,然后一个个去放所以当你小额度地传递数据,另一端取出来,这种,1.小额2.可知数量的key-value需要给HashMap一个初始容量k,k*因子>=key-value对数当然了,k必须是2次的降低因子对于长期留在内存的HashMap,可以降低因子,这样冲突的几率更小,性能就更好一点,只不过更占内存了 intObjectMap防止了i...原创 2018-06-21 23:28:41 · 332 阅读 · 0 评论