我正在阅读Mathworks网站上的'containers.map'课程(https://www.mathworks.com/help/matlab/ref/containers.map-class.htmlhttps://www.mathworks.com/help/matlab/ref/containers.map.iskey.html),我对组合 Map 感到困惑 .

请考虑以下示例:

keySet =   {'Jan', 'Feb', 'Mar', 'Apr'};
valueSet = [327.2, 368.2, 197.6, 178.4];
mapObj = containers.Map(keySet,valueSet)

并通过键入以下内容检查成员资格:

keySet = {'Apr','May','Jun'};
tf = isKey(mapObj,keySet)

结果是:

tf =

     1     0     0

现在,如果我们想要组合两个映射,我们只需连接如下:

keySet   = {'Jun','Jul','Aug'};
valueSet = [ 69.9, 32.3, 37.3];
newMap = containers.Map(keySet,valueSet);

mapObj = [mapObj; newMap];

并且,类似地,为了测试我们可以写的成员资格(不同的集合):

keySet = {'Jan','May','Aug','Dec'};
tf = isKey(mapObj,keySet)

并获得:

tf =

      1   0   1   0

Question :现在,据我所知,containers.map使用哈希函数 . 为什么我们可以独立于mapObj构建newMap的映射 - 当我们查找键时,这不会导致潜在的冲突吗?