list - 如何获取 List 的第一个元素,它本身是 Map [int, Any] 类型的 Map 的成员

标签 list scala dictionary casting

例子:

var a = Map(1 -> List(7,8,9), 2 -> 15)

变量a的类型是scala.collection.immutable.Map[Int,Any]

我想获取 List(7, 8, 9) 的第一个元素。 a(1)(0) 给我一个错误:Any does not take parameters

如何将 Any 类型转换为 List

请帮忙。

最佳答案

类似于@EndeNeu,但涵盖了空列表的情况,为了明确定义问题,我们假设值为 0

a.collect {
  case (i, Nil)   => (i, 0)
  case (i, x::_) => (i, x)
  case p @ (_, _) => p
}

注意 @ 将元组绑定(bind)到 p 以便在部分映射中我们不需要复制整个元组。

关于list - 如何获取 List 的第一个元素,它本身是 Map [int, Any] 类型的 Map 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502730/

相关文章:

python - 在 python 中对 x[n] 应用过滤器

C++ 列表 - 添加项目

scala - 使用 shapeless Mapper 无需指定结果类型

scala - Scala 中迭代器和流的区别?

scala - Java 的 ClassName.class 在 Scala 中的等价物是什么?

swift - NSUserDefaults 的特殊字典

python - 将字典的字典转换为列表的字典

python - 将元组转换为每行一个项目的字符串列表

python - 如何按嵌套字典中的元素访问 pandas 多重索引?

ruby - ruby 中的排序列表