删除Scala中List的第一个元素

时间:2015-11-07 20:57:34

标签: arrays scala list scala-collections

我试图使用递归函数遍历List [Char]中的每个元素,以检查元素的出现次数。我知道有更简单的方法,甚至可能有功能,但是有没有办法只删除List的第一个位置?

我尝试使用drop,甚至使用了以下剪辑但它没有做任何事情,其中​​test是列表的名称:

def delete(i: Int) = test.take(i) ++ test.drop((i+1));

我试图避免使用ListBuffer,并尝试转换为Array,但再次没有成功。

1 个答案:

答案 0 :(得分:1)

你的功能几乎可以在第i个位置删除项目,我只想添加' test'列出作为参数:

scala> def delete[A](test:List[A])(i: Int) = test.take(i) ++ test.drop((i+1))
delete: [A](test: List[A])(i: Int)List[A]

scala> delete((1 to 10).toList)(3)
res0: List[Int] = List(1, 2, 3, 5, 6, 7, 8, 9, 10)

我认为你试图对“测试”做出一些影响。使用函数删除但List是不可变的,函数delete不会产生副作用,它只返回新的List