有两种类型的转换我想应用到一些嵌套的数据结构:
- Map<X,Map<Y,Z>>转换为Map<Y,Map<X,Z>>
例如:
Map.of("a", Map.of("X", 1, "Y", 2),
"b", Map.of("Y", 3))
应该转变为
Map.of("X", Map.of("a", 1),
"Y", Map.of("a", 2, "b", 3))
1.Map<X,Set>以转换为Map<Y,Set>
例如:
Map.of("a", Set.of("X", "Y"),
"b", Set.of("Y", "Z"))
应该转变为
Map.of("X", Set.of("a"),
"Y", Set.of("a", "b"),
"Z", Set.of("b"))
我不知道这些转换的名称,也没有在我使用的任何JVM语言(主要是Java,有时候是Groovy和Clojure)中找到它们的实现,可能是因为我不知道要找什么。它们似乎是相当普遍的问题,我希望它们是非常知名的,并且已经在库甚至SDK中提供了解决方案。第一个是一个“转置”我猜,作为一个Map的Map可以被视为一个矩阵。
3条答案
按热度按时间qltillow1#
希望这能帮上忙。
k4emjkb12#
我不认为你会在广泛可用的库中找到这样的转置OP,但是在普通的Groovy中建模它们是相当容易的:
62lalag43#
在Clojure中,转换看起来像是:
测试: