Android内的HashMap与Java8中的HashMap
来源:互联网 发布:为什么讨厌中国人 知乎 编辑:程序博客网 时间:2024/06/06 11:34
默认起始容量不同
不同的起始容量意味着元素在遍历时输出的顺序很可能不同:
Java8
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
Android
static final int DEFAULT_INITIAL_CAPACITY = 4;
加载系数不同
在HashMap初始化时,可以通过构造函数指定加载系数的大小,但是Android下的HashMap不支持修改加载系数:
Java8
public HashMap(int initialCapacity, float loadFactor) { // 参数校验的代码略过 this.loadFactor = loadFactor; this.threshold = tableSizeFor(initialCapacity);}
Anroid
public HashMap(int initialCapacity, float loadFactor) { // 参数校验的代码略过 // Android-Note: We always use the default load factor of 0.75f. threshold = initialCapacity; init();// 这里什么都没做,子类可以获取到初始化成功的回掉}
Key为null的Entry处理的策略不同
Java8 的key可以为null,null的hash值为0
static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}
Android 的key也可以为null,但处理null时需要用putForNullKey(V value)
int hash = sun.misc.Hashing.singleWordWangJenkinsHash(key);
阅读全文
1 0
- Android内的HashMap与Java8中的HashMap
- 初探Java8中的HashMap
- 透视Java8中的hashMap
- java8 HashMap
- java8 HashMap的底层实现
- JAVA8 HashMap 的原理--个人
- HashMap---Android 的HashMap介绍
- android中的hashmap使用
- java8改进的HashMap和Hashtable类
- java8 hashMap排序的新认识
- java8中HashMap相对于java7的改进
- Java8中对HashMap的改造
- 浅析java8中HashMap的结构
- java中的hashmap与hashtable的区别
- java8 HashMap学习
- java8 HashMap 线程不安全
- java8 HashMap table寻址
- Java8重新认识HashMap
- java颜色设置
- 积分
- quickSort
- 《嵌入式开发探秘》之第一章 前言
- Spring的事务管理器
- Android内的HashMap与Java8中的HashMap
- 第十一个Java程序,计算QQ等级。
- 【python】3.6版本使用http.client网络请求示例
- 浅显易懂地解说 Paxos 的算法
- 学生信息系统学习心得四、学籍管理模块的创建
- html5自动弹出软键盘的方法
- idea注册码
- Leetcode 523.Continuous Subarray Sum
- 在线web代码编辑器的制作