ArrayMap代替HashMap
HashMap 代替
2023-09-11 14:20:27 时间
ArrayMap是一个<key,value>映射的数据结构,它设计上更多的是考虑内存的优化,内部是使用两个数组进行数据存储,一个数组记录key的hash值,另外一个数组记录Value值,它和SparseArray一样,也会对key使用二分法进行从小到大排序,在添加、删除、查找数据的时候都是先使用二分查找法得到相应的index,然后通过index来进行添加、查找、删除等操作,所以,应用场景和SparseArray的一样,如果在数据量比较大的情况下,那么它的性能将退化至少50%。
SparseArray和ArrayMap都差不多,使用哪个呢?
假设数据量都在千级以内的情况下:
1、如果key的类型已经确定为int类型,那么使用SparseArray,因为它避免了自动装箱的过程,如果key为long类型,它还提供了一个LongSparseArray来确保key为long类型时的使用
2、如果key类型为其它的类型,则使用ArrayMap
相关文章
- java:Map借口及其子类HashMap二
- HashMap原理解析
- Java实现 LeetCode 726 原子的数量(递归+HashMap处理)
- HashMap,LinkedHashMap,TreeMap的区别(转)
- 【JAVA】HashMap和HashSet的区别
- 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD
- [Java] HashMap源码分析
- HashMap默认加载因子为什么选择0.75?(阿里)
- Java中HashMap里面key为null存放到哪
- [Java 8 HashMap 详解系列]5.HashMap 的 remove() 方法执行原理
- HashMap设计思想学习
- 【java】HashMap底层的实现原理(JDK8)