Um dos melhores recursos do scala é para loops de compreensão. Eles permitem que você expresse o resultado esperado do loop e manipule Seq, List e outras coleções de uma forma que economize tempo e remova a desordem de sua contraparte Java.
Considere o seguinte…
JAVA
List<Integer> even = new ArrayList<Integer>();
for (String num : strings) {
int parsedInt = Integer.parseInt(num);
if (parsedInt % 2 == 0) {
ints.add(parsedInt);
}
}
Scala
val ints = for (num <- strings; if num.toInt % 2 == 0) yield num.toInt
ou ainda mais fácil
val ints = strings map { _.toInt } filter {_ % 2 == 0}