AndroidSurpport
行云间
z大厦大法师打发斯蒂芬
展开
-
RecyclerView数据更新神器 - DiffUtil
概述DiffUtil是support-v7:24.2.0新增的工具类,它主要是用来计算两个数据集之间的差异,计算出旧数据集->新数据集的最小变化量,并将其返回。算法DiffUtil内部采用ugene W. Myers’s difference 算法。该算法对空间做了优化,并使用O(N)空间来计算两个列表添加和删除的最小操作数,算法的时间复杂度为O(N + D ^ 2)。由于该...原创 2018-04-02 21:35:11 · 5451 阅读 · 2 评论 -
RecyclerView数据更新神器 进化版- AsyncListDiffer
概述在RecyclerView数据更新神器 - DiffUtil 译文中,已经了解到DiffUtil如何神助RecyclerView进行UI更新。它有一个缺陷就是DiffUtil在计算新旧数据集差异时需要开启线程,而在更新UI时又要在主线程。尽管可以这么做:Thread + HandlerRxJava虽然这样可以实现,但又显得笨拙。在support-v7:27.1.0又新增了一个...原创 2018-04-03 15:37:34 · 6761 阅读 · 1 评论 -
Android实用的排序集合 - SortedList
概述SortedList继承于java.lang.Object,是android.support.v7.util包下的工具类。这个类,与java.util包下的ArrayList、List等类没有丝毫的关系,不管是继承还是实现。而,又与它们相像,在这个类的内部,封装了对一系列对数据的操作:插入,删除,移动,更新等。SortedList实际上是一个排序列表的实现,提供处理了两种角色:保...原创 2018-04-04 19:00:10 · 4167 阅读 · 0 评论