Java 是否可以使用嵌套的arraylist进行DiffUtil.Callback

Java 是否可以使用嵌套的arraylist进行DiffUtil.Callback,java,android,Java,Android,我有一个关于Android中DiffUtil.Callback类的问题,该类用于高效地计算两个列表之间的差异。它通常与RecyclerView结合使用。 在我找到的所有示例中,它们都使用如下列表 ArrayList<CustomObject> newList; ArrayList<CustomObject> oldList; // the other methods that need to be overridden // e.g. getOldListSize(),

我有一个关于Android中DiffUtil.Callback类的问题,该类用于高效地计算两个列表之间的差异。它通常与RecyclerView结合使用。 在我找到的所有示例中,它们都使用如下列表

ArrayList<CustomObject> newList;
ArrayList<CustomObject> oldList;

// the other methods that need to be overridden
// e.g. getOldListSize(), getNewListSize() etc.
arraylistnewlist;
ArrayList oldList;
//需要重写的其他方法
//例如getOldListSize()、getNewListSize()等。
我的问题是:是否可以使用如下列表编写DiffUtil.Callback

ArrayList<ArrayList<CustomObject>> oldList;
ArrayList<ArrayList<CustomObject>> newList;
arraylistoldlist;
ArrayList新列表;

有可能吗?若否,原因为何。如果是,扩展DiffUtil.Callback的类会是什么样子

必须在areItemsTheSame和areContentsTheSame方法中迭代嵌套列表。如果任何项目已更改,则返回false

class FilterDiffUtilCallback : DiffUtil.ItemCallback<FilterUIModel>() {
    override fun areItemsTheSame(oldItem: FilterUIModel, newItem: FilterUIModel): Boolean {
        return oldItem.name == newItem.name
    }

    override fun areContentsTheSame(oldItem: FilterUIModel, newItem: FilterUIModel): Boolean {
        val size = oldItem.filterDataUiModel?.size ?: 0
        for (index in 0 until size) {
            if(oldItem.filterDataUiModel?.get(index) != newItem.filterDataUiModel?.get(index))
            {
                return false
            }
        }
        return oldItem == newItem
    }
}
class FilterDiffUtilCallback:DiffUtil.ItemCallback(){
覆盖项相同(旧项:FilterUIModel,新项:FilterUIModel):布尔值{
返回oldItem.name==newItem.name
}
覆盖内容相同(旧项:FilterUIModel,新项:FilterUIModel):布尔值{
val size=oldItem.filterDataUiModel?.size?:0
for(索引为0,直到大小){
if(oldItem.filterDataUiModel?.get(index)!=newItem.filterDataUiModel?.get(index))
{
返回错误
}
}
返回oldItem==newItem
}
}

为什么不呢?毕竟,
只是另一种类型的对象。您只需要弄清楚如何检查新旧对象是否已更改或相同。现在给你一个问题:为什么你首先需要在另一个
列表中有一个
列表
?此外,您还要求编写代码,但在编写自己的代码时没有表现出任何努力。向我们展示一些代码,如果它不起作用,我会尽力帮助更正:-)