将元素移动到Scala中列表的前面

jcm*_*jcm 4 scala data-structures scala-collections

我想知道是否有办法在列表中找到一个元素并将其移动到Scala列表的前面?有没有什么简单的方法可以做到这一点,除了迭代列表,然后删除该元素,然后将其预先挂起到列表的前面?

jon*_*rry 10

怎么用span?:

def moveToFront[A](y: A, xs: List[A]): List[A] = {
  xs.span(_ != y) match {
    case (as, h::bs) => h :: as ++ bs
    case _           => xs
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这比我的回答要好. (2认同)