【发布时间】:2014-02-28 05:27:23
【问题描述】:
Android 的SparseIntArray 的 API 文档打开:
SparseIntArrays 将整数映射到整数。
那么,我很好奇为什么它没有实现Map<Integer, Integer>。
在我看来,所需要的只是几个不同的方法名称、一些微不足道的额外方法,以及一些禁止 null 键和值的代码......当然没有 @ 987654323@ 不能优雅地处理。我忽略了什么吗?
这并不是要抨击 Android API 的设计者。通常,当我想知道things like this 时,事实证明这是有充分理由的,我会学习一些有关该语言或平台的知识。
【问题讨论】:
-
我认为这是因为实现 Map 接口会导致繁重的功能(装箱键,创建值和键的集合,...),而 SparseIntArray 中定义的函数是为效率。两者兼而有之会适得其反。
-
请记住,所有这些方法在 map:developer.android.com/reference/java/util/Map.html 中都是必需的(另外,如果您将其称为更高抽象的映射,则不能使用 SparseIntArray 特定函数。并使用 @ 进行迭代987654328@ 和
keyAt旨在比Map中的entrySet更高效,但不太方便)
标签: java android api collections