📜  Scala集合-ListSet(1)

📅  最后修改于: 2023-12-03 15:19:58.965000             🧑  作者: Mango

Scala集合 - ListSet

Scala集合(ListSet)是一种无序不可重复的集合,底层实现是基于列表(List)的,但是不同于List,ListSet中的元素是无序的。

创建ListSet

可以使用以下方法来创建ListSet:

import scala.collection.immutable._

// 创建空的ListSet
val emptyListSet = ListSet.empty[Int]

// 创建带元素的ListSet
val listSet = ListSet(1, 2, 3, 4, 5)
添加元素

可以使用+++方法向ListSet添加元素,+添加单个元素,++添加多个元素:

val listSet1 = ListSet(1, 2, 3, 4, 5)
val listSet2 = listSet1 + 6
val listSet3 = listSet1 ++ List(7, 8, 9)

println(listSet1) // ListSet(1, 2, 3, 4, 5)
println(listSet2) // ListSet(1, 2, 3, 4, 5, 6)
println(listSet3) // ListSet(1, 2, 3, 4, 5, 7, 8, 9)
删除元素

可以使用---方法从ListSet中删除元素,-删除单个元素,--删除多个元素:

val listSet1 = ListSet(1, 2, 3, 4, 5)
val listSet2 = listSet1 - 5
val listSet3 = listSet1 -- List(3, 4)

println(listSet1) // ListSet(1, 2, 3, 4, 5)
println(listSet2) // ListSet(1, 2, 3, 4)
println(listSet3) // ListSet(1, 2, 5)
遍历ListSet

可以使用foreachmapfilter等方法来遍历ListSet:

val listSet = ListSet(1, 2, 3, 4, 5)

// 遍历ListSet并打印元素
listSet.foreach(println)

// 将每个元素加倍
val doubledListSet = listSet.map(_ * 2)
doubledListSet.foreach(println)

// 过滤掉所有偶数元素
val oddsListSet = listSet.filter(_ % 2 != 0)
oddsListSet.foreach(println)
ListSet中的元素类型

ListSet中的元素类型可以是任何类型,例如:

case class Person(name: String, age: Int)

val alice = Person("Alice", 25)
val bob = Person("Bob", 30)
val charlie = Person("Charlie", 35)

val peopleListSet = ListSet(alice, bob, charlie)

println(peopleListSet) // ListSet(Person(Alice,25), Person(Bob,30), Person(Charlie,35))
总结

ListSet是基于列表(List)实现的一种无序不可重复的集合,没有重复元素。ListSet可以用于存储任何类型的元素,并支持添加、删除和遍历等常见操作。