Mic*_*per 6 java api collections android
Android SparseIntArray的API文档打开:
SparseIntArrays将整数映射到整数.
我很好奇,那么,为什么它没有实现Map <Integer,Integer>.
在我看来,所有需要的是一些不同的方法名称,一些简单的额外方法,以及一些禁止null键和值的代码......当然,没有任何EnumMap无法处理的优雅.我忽略了什么吗?
这并非旨在向Android API的设计者轻扫.通常当我想到这样的事情时,事实证明这是一个很好的理由,我学到了一些关于语言或平台的知识.
SparseIntArray 的 JavaDoc 还说
SparseIntArrays 将整数映射到整数。与普通整数数组不同,索引中可以存在间隙。它的目的是比使用 HashMap 将 Integers 映射到 Integers 具有更高的内存效率,因为它避免了自动装箱键和值,并且其数据结构不依赖于每个映射的额外条目对象。
我们可以得出以下选择 SparseIntArray 而不是 Map< Integer,Integer > 的原因:
作为一个侧面,我想说 JavaDoc 应该更具体地说
“SparseIntArrays 将原始整数映射到整数。”
而不是说
“SparseIntArrays 将整数映射到整数。”