我有一个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)