该列表是不可变的数据结构,因此删除元素很容易实现。一种方法是使用诸如filter,partition,splitAt,take等过滤方法过滤掉元素。
程序:
object MyClass { def main(args: Array[String]) { var progLang = List("C++", "Java", "Scala", "Python") println("编程语言: " + progLang) var newLang = progLang.filter(_<"P") println("编程语言: " + newLang) } }
输出结果
编程语言: List(C++, Java, Scala, Python) 编程语言: List(C++, Java)
修改列表的其他方法是使用ListBuffer,它是可变的,使删除过程变得容易。
我们可以使用以下方法从ListBuffer中删除一个元素:
使用-=运算符
使用remove()
方法
使用-=运算符(删除另一个集合的元素)
-=可以从ListBuffer中删除单个或多个元素。
语法:
ListBuffer -= element(s)
程序:
import scala.collection.mutable.ListBuffer object MyClass { def main(args: Array[String]) { var progLang = ListBuffer("C", "C++", "Java", "Scala", "Python", "JavaScript") println("编程语言: " + progLang) println("Deleting single element") progLang -= "Java" println("编程语言: " + progLang) println("Deleting multiple elements") progLang -= ("C", "Python") println("编程语言: " + progLang) } }
输出结果
编程语言: ListBuffer(C, C++, Java, Scala, Python, JavaScript) Deleting single element 编程语言: ListBuffer(C, C++, Scala, Python, JavaScript) Deleting multiple elements 编程语言: ListBuffer(C++, Scala, JavaScript)
remove()
方法该remove()
方法与-=相同,可以删除单个或多个元素。
语法:
ListBuffer.remove(element)
程序:
import scala.collection.mutable.ListBuffer object MyClass { def main(args: Array[String]) { var progLang = ListBuffer("C", "C++", "Java", "Scala", "Python", "JavaScript") println("编程语言: " + progLang) println("Deleting single element") progLang.remove(0) println("编程语言: " + progLang) println("Deleting multiple elements") progLang.remove(3, 2) println("编程语言: " + progLang) } }
输出结果
编程语言: ListBuffer(C, C++, Java, Scala, Python, JavaScript) Deleting single element 编程语言: ListBuffer(C++, Java, Scala, Python, JavaScript) Deleting multiple elements 编程语言: ListBuffer(C++, Java, Scala)
该remove()
方法适用于ListBuffer的索引,并且在删除多个元素时,我们需要启动要删除的索引和数字作为该方法的参数。
-=删除使用另一个集合指定的元素。
语法:
ListBuffer --= collection
程序:
import scala.collection.mutable.ListBuffer object MyClass { def main(args: Array[String]) { var progLang = ListBuffer("C", "C++", "Java", "Scala", "Python", "JavaScript") println("编程语言: " + progLang) println("Deleting elements") progLang --= Array("C", "Python") println("编程语言 " + progLang) } }
输出结果
编程语言: ListBuffer(C, C++, Java, Scala, Python, JavaScript) Deleting elements 编程语言 ListBuffer(C++, Java, Scala, JavaScript)