Определение «эффективно» как «отнимает наименьшее возможное время программиста для реализации и поддержки» ...
Для последовательности:
val s = Seq(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41)
val overSixteen = s dropWhile (_ < 16)
Для карты:
val s = Map(2->"a", 3->"b", 5->"c", 7->"d", 11->"e", 13->"f")
val overSix = s dropWhile (_._1 < 6)
Если вы предпочитаете Итератор, просто наберите .iterator
для полученной коллекции, или вы можете использовать .view
до dropWhile
, если выособенно интересует ленивое поведение.