Mos*_*cho 4 dictionary smalltalk pharo
我有一个像这样的字典:
a PluggableDictionary(
Rankable1->8.5
Rankable2->9.0
)
Run Code Online (Sandbox Code Playgroud)
我只需要一个OrderedCollection,其Rankable对象按降序排列:
a OrderedCollection(
Rankable2
Rankable1
)
Run Code Online (Sandbox Code Playgroud)
我注意到按键排序很容易,但我发现按值排序有点困难.这样做的小方法是什么?
如果你需要在非关键循环中使用一个镜头排序集合,你可能会使用这样的东西(使用pharo语法来初始化示例字典):
pd := PluggableDictionary newFromPairs: { 'a' . 2 . 'b' . 1 . 'c' . 3} .
(pd associations asSortedCollection: [:x :y | x value < y value])
collect: [:assoc | assoc key].
Run Code Online (Sandbox Code Playgroud)
如果您需要更频繁地使用它,那么您可能会考虑引入自己的类来保持此集合的计算.