使用Scala如何删除Array,ArrayBuffer中的元素

一、Array与ArrayBuffer简介

        Array与ArrayBuffer都是集合,可以存储任何类型的对象,不同的是Array是不可变的,而ArrayBuffer是可变的。

二、Array与ArrayBuffer的元素删除操作

        由于Array是不可变的,所以不能直接地对其元素进行删除操作,只能通过重赋值或过滤生成新的Array的方式来删除不要的元素。

        而ArrayBuffer是可变的,本身提供了很多元素的操作,当然包括删除操作。

        具体实现看实例代码:

import scala.collection.mutable.ArrayBuffer

/**
  * 删除可变和不可变集合的元素的操作
  */
object DeleteOperators extends App {

  /*Array的size是不可以改变的,所以没有直接删除其元素的方法,
    只能通过修改其元素值或者用另外的Array来取要的元素,过滤不要的元素,说白了就是通过过滤来删除Array中的元素,生存新的Array.
  * */
  val a = Array("apple", "banana", "cherry")
  a(0)=""
  a(1)=null
  a.foreach(println)
  val x = Array("apple", "banana", "cherry")
  val c = x.filter(!_.contains("apple"))
  c.foreach(println)

  /*ArrayBuffer是可变的序列,也就是说它的size是可改变的,所以可以直接删除它的元素,它提供了响应的方法.*/
  val b = ArrayBuffer('a','b','c','d','e','f','g','h','i','j','k','l')
  b -= 'a' //删除1个指定元素;
  b -= ('b','c')  //删除多个指定元素
  b --= Seq('d','e')  //通过1个集合来删除元素(可以用Array,Set)
  b.remove(0) //通过index来删除元素
  b.remove(1,2) //通过index来删除多个元素
  b.clear() //清除所有元素
  println(b)

}

你可能感兴趣的:(Scala)