没腿的鸟 发表于 2025-1-11 20:14:31

scala底子学习(数据范例)-聚集

聚集

Scala Set(聚集)是没有重复的对象聚集,所有的元素都是唯一的。
Scala 聚集分为可变的和不可变的聚集。
默认情况下,Scala 使用的是不可变聚集,如果你想使用可变聚集,必要引用 scala.collection.mutable.Set 包。
默认引用 scala.collection.immutable.Set,不可变聚集实比方下:
创建聚集

val set1:Set = Set(1,2,3,4)
println(set1)
isEmpty

// 判断是否为为空
println(set1.isEmpty) //false
获取数据



[*]用过索引获取
[*]提取列表头:head,提取列表尾:last ,返回元素
[*]从前提取元素:take,从后提取元素:takeRight,返回列表
//返回集合第一个元素
println(set1.head)
println(set1.last)
//1
//4

// 获取集合
println(set1.take(2))
println(set1.takeRight(2))
//Set(1, 2)
//Set(3, 4)
添加元素

// 添加元素
var newset = set1 + 6
println(newset)
//Set(1, 6, 2, 3, 4)

// 删除元素,元素不存在无影响
val newset2 = set1 - 99
println(newset2)
//Set(1, 2, 3, 4)

// 连接集合(并集)
println(set1++Set(1,7))
//Set(1, 2, 7, 3, 4)
删除元素

实际就是,获取剩余元素新列表,并不是删除


[*] 删除头部元素,得到其余元素,tail
[*] 删除尾部元素,得到其余元素,init
[*] 删除前n个元素drop
[*] 删除后n个元素dropRight
println(set1.init)
println(set1.tail)
//Set(1, 2, 3)
//Set(2, 3, 4)

// 参数是选取的个数
println(set1.drop(2))
println(set1.dropRight(2))
//Set(3, 4)
//Set(1, 2)
常见方法

filter,map,reduce,fold,dropWhile,find,forall,…,含义方式同其余容器
交集 &

效果都相同返回新聚集
println(Set(1,2,3) & Set(1,4,5))
println(Set(1,2,3).&(Set(1,4,5)))
println(Set(1,2,3).intersect(Set(1,4,5)))
println(Set(1,2,3) intersect Set(1,4,5))

//Set(1)
差集 diff –

a -- b,a对b的差集
// 差集
println(Set(1, 2, 3)--Set(1, 4, 5))
println(Set(1, 2, 3) diff Set(1, 4, 5))
并集 ++ union

println(Set(1,2,3,4).subsetOf(Set(1,2,3,4,5)),"ldsx")
to string

// to string
import scala.collection.mutable.StringBuilder
val sb = new StringBuilder
set1.addString(sb, ", ")
println(sb)
val result = sb.toString
println(result)

// to string
println(set1.toString())

// to string
println(set1.mkString(","))
to list

println(set1.toList)
to Array

println(set1.toArray)
to Map

println(set1.map(key => (key, key * key)))
println(set1.map(key => (key, "1"+key)))
println(set1.map(key => (key, key * key)).toMap)
其余常用方法

方法同其余容器范例数据
head,last      
take,takeRight

init,tail
drop dropRight

fold,reduce,sum
dropWhile,

forall,foreach

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: scala底子学习(数据范例)-聚集