在Pharo Smalltalk中存储多个值的键的好方法?
我有一个键值存储(字典),由以下部分组成:在Pharo Smalltalk中存储多个值的键的好方法?,smalltalk,pharo,Smalltalk,Pharo,我有一个键值存储(字典),由以下部分组成: key1 value1 key2 value1 key3 value3 key1 value4 key3 value4 and so on 我想对这些进行分组,以便键只显示一次(键的排序是可选的)和值: key1 value1, value4 key2 value1 key3 value3, value4 问题是:是否有专门的方法来存储结果 设法修复了它。用于键值存储(字典),其中键为key1、key2、key3,值为value1、value2、v
key1 value1
key2 value1
key3 value3
key1 value4
key3 value4
and so on
我想对这些进行分组,以便键只显示一次(键的排序是可选的)和值:
key1 value1, value4
key2 value1
key3 value3, value4
问题是:是否有专门的方法来存储结果 设法修复了它。用于键值存储(字典),其中键为key1、key2、key3,值为value1、value2、value3等的集合(或数组) 大致如下:
keys do: [ :eachKey | (eachKey condition) ifTrue: [
keyValueStorage at: eachKey ifAbsentPut: [ Set new. ]
( keyValueStorage at: eachKey ) add: value. ] ] .
您还可以使用
#groupedBy:
,例如{key1->#value1.\key2->#value2.\key1->#value3.}groupedBy:#key
也在:ifabentput:
通常将块作为第二个参数,因此[设置新]
。。。因此,仅当needed@Peter您需要(…groupedBy:#key)collect:[:coll | coll collect:#value]
,否则您将得到一个字典,其中值是associations@Peter修正,让那一个滑倒。