在Pharo Smalltalk中存储密钥到多个值的好方法?

时间:2017-01-17 09:50:11

标签: smalltalk pharo

我有一个由以下内容组成的键值存储(字典):

key1 value1
key2 value1
key3 value3
key1 value4
key3 value4
and so on

我想对这些组进行分组,这样键只出现一次(键的排序是可选的)和值:

key1 value1, value4
key2 value1
key3 value3, value4

问题:是否有专门的方法存储结果?

1 个答案:

答案 0 :(得分:3)

管理修复它。使用键值存储(字典),其中键是key1,key2,key3,值是value1,value2,value3等的Set(或Array)。

以下内容:

keys do: [ :eachKey | (eachKey condition) ifTrue: [
    keyValueStorage at: eachKey ifAbsentPut: [ Set new. ]
    ( keyValueStorage at: eachKey ) add: value. ] ] .