I have List[Int]
in Scala. The List is List(1,2,3,4,5,6,7,8,9,10)
. I want to filter
the list so that it only has even numbers. And I want to multiply the numbers with 2.
Is it possible?
As I state in my comment, collect
should do what you want:
list.collect{
case x if x % 2 == 0 => x*2
}
The collect
method allows you to both specify a criteria on the matching elements (filter
) and modify the values that match (map
)
And as @TravisBrown suggested, you can use flatMap
as well, especially in situations where the condition is more complex and not suitable as a guard condition. Something like this for your example:
list.flatMap{
case x if x % 2 == 0 => Some(x*2)
case x => None
}