我正在使用针对用户名列表的唯一 int id 列表作为快速查找表,并决定使用 sparseArray 但我希望能够不时打印以记录整个列表以进行调试。
SparseArray 不可迭代,与 util.Map 接口不太相似
我正在使用针对用户名列表的唯一 int id 列表作为快速查找表,并决定使用 sparseArray 但我希望能够不时打印以记录整个列表以进行调试。
SparseArray 不可迭代,与 util.Map 接口不太相似
老鼠是正确的,代码看起来像这样;
for(int i = 0; i < sparseArray.size(); i++){
int key = sparseArray.keyAt(i);
Object value = sparseArray.valueAt(i);
}
使用 SparseArray.size() 获取总大小。
使用 SparseArray.keyAt 和 valueAt 获取给定索引中的键/值。
以下是如何显示调试跟踪的 SparseArray 内容。
public static String sparseArrayToString(SparseArray<?> sparseArray) {
StringBuilder result = new StringBuilder();
if (sparseArray == null) {
return "null";
}
result.append('{');
for (int i = 0; i < sparseArray.size(); i++) {
result.append(sparseArray.keyAt(i));
result.append(" => ");
if (sparseArray.valueAt(i) == null) {
result.append("null");
} else {
result.append(sparseArray.valueAt(i).toString());
}
if(i < sparseArray.size() - 1) {
result.append(", ");
}
}
result.append('}');
return result.toString();
}