相关文章
- Android Utils 之 Vector 学习笔记(一)—— VectorImpl 代码分析
- Android Utils 之 Vector 学习笔记(二)—— SortedVectorImpl 代码分析
- Android Utils 之 Vector 学习笔记(三)—— Vector 与 SortedVector 代码分析
- Android Utils 之 Vector 学习笔记(四,完结)—— KeyedVector 与 DefaultKeyedVector 代码分析
KeyedVector
终于来到我关注的 KeyedVector
类了。但实际上具体的逻辑实现部分都已经在前几章看到的 VectorImpl
、SortedVectorImpl
以及 SortedVector
中搞定了,这里只是调用了它们提供的接口来实现相应的操作。
类定义
文件路径:system\core\libutils\include\utils\KeyedVector.h
这里也不需要太多分析,因为都是一些基本操作(注意有个 isIdenticalTo
函数,用于判断另一个 Vector 和当前的 Vector 是否一样,即同首地址)。
第 64 行,声明了 SortedVector
类型的内部变量 mVector
,并且将其元素类型设置为键值对 key_value_pair_t<KEY, VALUE>
。而对 key_value_pair_t
指针取值时,返回的应该是 KEY
的值,如果 KEY
是字符串,则比较大小时应是比较字符串大小(即此时 mVector
按 KEY
的字典序排列)。
template <typename KEY, typename VALUE>