list - 以有效的方式从scala中的序列中过滤选项
问题描述
我想摆脱.isDefined
和.get
,任何好的建议
val t = Seq(Option("abc"), Option("def"), Option("abc"), Option(""))
t.filter(_.isDefined).groupBy(x =>x.get)
我需要我的返回类型Map[String, Seq[String]]
解决方案
由于您需要filter
同时map
,您可以collect
:
t.collect { case Some(s) if s.nonEmpty => s }.groupBy(identity)
结果是
Map("abc" -> Seq("abc", "abc"), "def" -> List("def"))
您可以在 Scastie 上使用此代码。
collect
您可以在官方文档中阅读更多信息。
推荐阅读
- java - 查找数组中长度最小的所有字符串
- javascript - 两个结果的乘法vue js版本3
- c++ - 从 std::vector 读取 CSV
使用 Apache 箭头 - vue.js - 如何在 NuxtJs SSR 应用程序中将文档/页面缓存到 Vercel Web 服务器
- colors - 用于导出/导入调色板的标准文件格式?
- flutter - 为什么PageStorage在flutter中没有恢复文章详细页面滚动位置
- c++ - C ++中Pascal三角形程序中的输出不正确
- python - 在熊猫数据框上显示 html 字符串值
- angular - 如何设置 Angular 多语言站点 + 谷歌云 kubernetes
- laravel - 直接在 cpanel 上运行 npm 命令