java - 使用ArrayList<String> 和 使用HashMap<String, String> 存储键值对,哪个速度更快一些
ringa_lee
ringa_lee 2017-04-18 10:41:08
0
6
714
ringa_lee
ringa_lee

ringa_lee

全部回复(6)
小葫芦

不建议使用偶数存键,奇数存值的ArrayList方式,这个与我们写代码的一般逻辑相悖,对后来维护者也会造成很大的困扰。并且,现在手机性能都是很不错的,你的使用场景中,无需考虑性能的问题。

大家讲道理

对于你所说的数据量小于10的情况下,ArrayList<String> 和 HashMap<String, String>误差很小,使用哪个都不会影响性能;但从技术层讨论这个问题,就多啰嗦两句^.^

ArrayList是有序集合,其底层其实就是一个数组,如果是遍历的话和存储相对于HashMap还是要快些,但其增加、删除会比较慢,特别是从列表中间增加、删除(扯远了)

而HashMap是一个无序哈希表,他的查询顺序是跟数据量直接关联的,简单点说就是数据量越大,查询越慢!

总结:
小数据:两者均可使用。
大数据:查询频繁使用ArrayList,增删、改频繁,使用HashMap。
超大数据:使用ArrayList;

PHPzhong

这个和数据量有关

巴扎黑

看你的使用方式啰,如果只是存储和遍历List快,如果要通过key查value的话Map快

PHPzhong

虽然不知道你为什么要比较List<String>和Map<String,String>的存储那个更快,对于这两个接口都有不同的实现类,像ArrayList和LinkedList就有很大不同,而HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap这些Map的实现类行为,效率,保存对象周期以及key的等价策略更是有很大差异.当我没回答吧/(ㄒoㄒ)/~~

小葫芦

楼上对性能已经解释的很清楚了,
如果存储的数据小于10个的话,可以直接在声明时指定最大值10,这样可以节省内存空间,

List<String> list = new ArrayList<>(10);
Map<String, String> map = new HashMap<>(10);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板