何时使用地图是有意义的?

kiw*_*ptn 6 language-agnostic mapping dictionary map data-structures

我正在尝试使用地图(一组键值条目)来合并案例.到目前为止,我有两个类别(见下文).假设存在更多,它们是什么?

请将每个答案限制为一个独特的类别并举一个例子.


属性值(如bean)

age -> 30
sex -> male
loc -> calgary   
Run Code Online (Sandbox Code Playgroud)

存在,具有O(1)性能

peter -> 1
john  -> 1
paul  -> 1
Run Code Online (Sandbox Code Playgroud)

Eri*_*lje 5

稀疏数据结构(例如稀疏数组或矩阵):

0 -> value
1 -> value
100 -> value
105 -> value
Run Code Online (Sandbox Code Playgroud)

此外,我认为你列出的"Presence"示例最好使用Set数据结构(例如Java或.NET中的HashSet),因为地图的"映射"部分实际上不是必需的.


p.m*_*ino 1

如果您的语言允许关联数组和指向函数/过程的指针,您可以使用映射来构建类似于面向对象的东西(请参阅 Perl 的经典示例)。

请参阅此处了解更详细的解释