android 性能优化篇(一)

数据结构层面的优化,能够达到加快响应速度以及减小内存。


ArrayList,是对数组的封装,数组便于修改和查看。对于增加和删除arraylist的add 和remove方法中增加了这个方法就是用来在插入或者删除元素之后,要将index之后的元素都往后或者往前移一位,System.arraycopy(elementData, index, elementData, index +1,size - index);由于复制内容增加和删除效率低。

 LinkedList是一个双向链表,也就是说list中的每个元素,在存储自身值之外,还 额外存储了其前一个和后一个元素的地址,所以 也就可以很方便地根据当前元素获取到其前后的元素.链表的尾部元素的后一个节点是链表的头节点;而链表的头结点前一个节点则是则是链表的尾节点.所以根据链表的特性插入和删除效率高


对比arraylist和linkdlist


HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ,key唯一的value可以重复,允许存储null 键null 值,元素无序。由于综合了数组和链表,性能上查找、删除、增加效率高。


SparseArray,它是用两个数组来存储的,一个用于存储key一个用于存储value。




©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容