如何从 List[Any] 中取出所有 Int 值?
我在 Scala 中有一个 List[Any],其中包含 Int、String、Char 和 List 的混合。我只想将 Int 值提取到一个新列表中,即 List[Int]。我该怎么做?
I have a List[Any] in Scala which contains a mix of Int, String, Char, and List. I want to pull out only the Int values into a new List that would be List[Int]. How do I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用
collect
方法,该方法类似于map
和filter
的组合,并以部分函数作为参数。List(1, 2, "Foo", 39.7 ).collect{ case i: Int =>; i }
结果是
List(1, 2)
,编译器知道类型是 List[Int] 而不是 List[Any]。Try the method
collect
, which is like a combination ofmap
andfilter
with a partial function as its parameter.List(1, 2, "Foo", 39.7 ).collect{ case i: Int => i }
The result is
List(1, 2)
, and the compiler knows that the type is List[Int] rather than List[Any].