Scala map key由2个逗号分隔的集合组成.如何提取集合中的第一个键?



我有一个Scala地图集合,看起来像这样:

var collection = Map((A,B) -> 1)

键为(A,B),值为1。

我的问题:如果我使用collection.head._1,结果是(A,B),这是正确的。但我只想提取A,不提取B,因为我需要将A与其他变量进行比较。因此,最终结果应该是存储在另一个变量中的A。

我试图使用collection.head._1(0),导致错误

Any不带参数

您可以尝试:

val collection = Map(("A","B") -> 1)
collection.map{ case ((a, b),v) => a -> v}

您可以使用keySet将所有键作为Set[(String, String)],然后使用map将其放入每个键的第一个元素:

val coll: Map[(String, String), Int] =
Map(
("one", "elephant") -> 1,
("two", "elephants") -> 2,
("three", "elephants") -> 3
)
/*
val myKeys = coll.keySet.map { case (x, _) => x }
// equivalent to:
val myKeys = coll.keySet.map(tup => tup._1)
// equivalent to: */
val myKeys = coll.keySet.map(_._1)  // Set(one, two, three)

最新更新