当我尝试使用地图(一组键值条目)时,我试图整理案例。到目前为止,我有两个类别(见下文)。假设存在更多,它们是什么?
请将每个答案限制在一个唯一的类别中并举一个例子。
属性值(like a bean)
age -> 30
sex -> male
loc -> calgary
在场,有O(1)表现
peter -> 1
john -> 1
paul -> 1
答案 0 :(得分:5)
稀疏数据结构(例如稀疏数组或矩阵):
0 -> value
1 -> value
100 -> value
105 -> value
另外,我认为您列出的“Presence”示例最好使用Set数据结构(例如Java或.NET中的HashSet),因为地图的“映射”部分实际上不是必需的。
答案 1 :(得分:3)
记住功能结果(缓存,缓冲,memoization)
10 -> 2
20 -> 7
30 -> zeroesIn(factorial(30))
答案 2 :(得分:2)
转换
peter -> pierre
john -> jean
paul -> paul
答案 3 :(得分:1)
如果你的语言允许关联数组和指向函数/过程的指针,你可以使用map来构建类似于面向对象的东西(参见Perl的经典例子)。
请在此处查看more detailed explanation。
答案 4 :(得分:1)
将任意数量的可选参数传递给函数,使用不支持它们的语言:
cars = findAvailableCars(make -> 'Toyota', model -> 'Prius', color -> 'green')
答案 5 :(得分:0)
正如Eric Petroelje所说,你的“存在”示例更适合于Set而不是Map。
但是,如果要跟踪事物的发生次数,请使用地图。例如,您想知道给定单词在文档中出现的次数:
伪代码:
wordMap = map()
for word in document:
if wordMap.containsKey(word):
wordMap[word]++
else:
wordMap[word] = 1
然后,如果我想知道“地图”这个词出现在文档中的次数,那就是wordMap["map"]
答案 6 :(得分:0)
地图是表示graph的一种方式。键是图中的节点,特定节点N的值是N连接的所有节点的列表。
答案 7 :(得分:0)
(感谢重拍,MatrixFrog。)
字典(将术语映射到定义)
"postulate" -> "demand or claim"
"consulate" -> "residence of a foreign official"
此外属于此类
EADDRINUSE -> "Address in use."
EADDRNOTAVAIL -> "Address not available."