ArrayList、LinkedList、HashMap哪个速度更快
ArrayList、LinkedList、HashMap查询单个元素时速度比较?ArrayList、LinkedList、HashMap遍历整个集合时速度比较?Array...
ArrayList、LinkedList、HashMap查询单个元素时速度比较?
ArrayList、LinkedList、HashMap遍历整个集合时速度比较?
ArrayList、LinkedList、HashMap增删时速度比较?
ArrayList、LinkedList、HashMap在不同情况该用哪种? 展开
ArrayList、LinkedList、HashMap遍历整个集合时速度比较?
ArrayList、LinkedList、HashMap增删时速度比较?
ArrayList、LinkedList、HashMap在不同情况该用哪种? 展开
3个回答
展开全部
要回答这个问题,要写很多内容,还是用下面一写,四个答案由楼主自己一想就知道了。
1、ArrayList 有序集合 底层为数组 按下标查找快 增删慢 按元素查找、增删都慢
2、LinkedList 有序集合 底层为链表 按下标查找慢 增删快 按元素查找慢 增删比arrayList快
3、HashMap 无序哈希表 底层哈希表 按下标查找一般比LinkedList快 增删快跟主体大小有关
按元素查找快 增删快跟主体大小有关,越大越慢
要是HashMap改成HashSet就更合适些了,Map和List是不同的数据结构,放在一起有点不合适。HashSet就更好些,虽然Set的底层是hashmap。
再理解下吧。
1、ArrayList 有序集合 底层为数组 按下标查找快 增删慢 按元素查找、增删都慢
2、LinkedList 有序集合 底层为链表 按下标查找慢 增删快 按元素查找慢 增删比arrayList快
3、HashMap 无序哈希表 底层哈希表 按下标查找一般比LinkedList快 增删快跟主体大小有关
按元素查找快 增删快跟主体大小有关,越大越慢
要是HashMap改成HashSet就更合适些了,Map和List是不同的数据结构,放在一起有点不合适。HashSet就更好些,虽然Set的底层是hashmap。
再理解下吧。
追问
就是按下标查找频繁的就是ArrayList,增删频繁的就用LinkedList
那什么时候该用HashMap?,为什么增删跟主体大小有关?既然是无序的,直接增加到HashMap就行了把,都不用移动元素的,删除的时候先找到那个元素也可以直接删除把,那增删跟主体大小关系在哪?因为本人对HashMap了解有限,只知道HaspMap存储的是无序的“键-值对”
追答
1、第一句话是“就是按下标查找频繁的就是ArrayList,增删频繁的就用LinkedList”是对的。
2、HashMap是适用小数据量的快速查找、增删操作,大数量之后,由于插入和查找的内存消耗和冲突排除都会大大提高,所以大数量都不敢用hashMap。具体的原因,要说明白需要太长篇幅,搜一下“HashMap",看下百科就更清楚了。
试试看吧。
展开全部
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高但是插入和删除元素时效率不高。
LinkedList采用链表存储方式,每个元素之间的前后顺序是以引用的方式指定的。插入、删除元素时效率比较高。
Map接口存储一组键值对象,提供key(建)到value(值)的映射
Map接口最常用的实现类是HashMap。Map接口的实现类中是使用put方法存储数据的。
LinkedList采用链表存储方式,每个元素之间的前后顺序是以引用的方式指定的。插入、删除元素时效率比较高。
Map接口存储一组键值对象,提供key(建)到value(值)的映射
Map接口最常用的实现类是HashMap。Map接口的实现类中是使用put方法存储数据的。
展开全部
查询元素 ArrayList 快
遍历整个集合 和 删增 LinkedList快
ArrayList是线性表 LinkedList是链表
list 和 map使用情况完全不一样 所以没法比较 map 一般用在需要映射的时候
遍历整个集合 和 删增 LinkedList快
ArrayList是线性表 LinkedList是链表
list 和 map使用情况完全不一样 所以没法比较 map 一般用在需要映射的时候
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询