gpt4 book ai didi

scala - 根据Scala中的条件从同一集合的元素创建 map

转载 作者:行者123 更新时间:2023-12-04 09:37:43 25 4
gpt4 key购买 nike

我有一个 Hashset以下形式,它可能会变大:

var hs = HashSet(("fox", "name"),
("animal", "type"),
("gender", "type"),
("x", "test"),
("x", "nottest"),
("z", "test"),
("z", "nottest"))

使用以下形式从中获取 Map 的最佳方法是什么:
HashMap (("x", "test")-> ("x", "nottest"),("z", "test") ->("z", "nottest"))

即映射来自同一集合的元组,其中它们具有相同的第一个元素,第二个元素以“not”为前缀。

最佳答案

您可以创建所有可能的对并过滤掉原始集合中不存在的对:

hs.map { case(k, v) => (k, v) -> (k, "not" + v) }
.filter { case(pos, neg) => hs.contains(neg) }
.toMap

编辑:

如果集合变得非常大,那么我们可以轻松更改排序 - 首先检查和过滤仅具有否定的对,然后映射:
hs.filter { case(k, v) => hs((k, "not" + v)) }
.map { case(k, v) => (k, v) -> (k, "not" + v) }
.toMap

关于scala - 根据Scala中的条件从同一集合的元素创建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62480355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com