gpt4 book ai didi

java - 静态 "DELETE"对象的用途是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:18 25 4
gpt4 key购买 nike

在安卓类中SparseArray ,静态最终变量 DELETED 被定义为一个简单的 Object。稍后在类中,它的引用用作添加到容器中的已删除实体的标识符。为什么删除的实体不只是被清空?区分空槽和删除槽的目的是什么?

注意:直接问的是SparseArray类,问的是笼统的问题。

最佳答案

因为 null 是存储在数组中的有效值,所以您需要能够区分 nullDELETED

作为为什么需要区分它们的示例,考虑get(key, default):

 @SuppressWarnings("unchecked")
public E get(int key, E valueIfKeyNotFound) {
int i = binarySearch(mKeys, 0, mSize, key);

if (i < 0 || mValues[i] == DELETED) {
return valueIfKeyNotFound;
} else {
return (E) mValues[i];
}
}

现在如果你做类似的事情:

array.put(1, null);
array.get(1, someDefault);

您将(正确地)得到 null

如果将 DELETED 替换为 null,则会得到 someDefault

关于java - 静态 "DELETE"对象的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com