Scala 的 Set集合(不可重複)詳解

2021-10-05 22:12:35 字數 4220 閱讀 1037

set定義

set 當中元素是無序的,而且會去重,如下**所示,定義了乙個set

val set =set[int](1

,2,3

,4,4,5)

**執行如下

intersect 求交集

val set =set[int](1

,2,3

,4,4

,5) val set1 = set[int](4

,5,6

,7,8

,9) val res :set[int]

= set.

intersect

(set1)

效果圖如下:

diff 求差集

val res1 :set[int]

=set.

diff

(set1)

val res1 :set[int]

=set1.

diff

(set)

效果圖如下

操作符操作

filter過濾器

可以看到返回值的型別還是set。

可變長的set

匯入包

import scala.collection.mutable

而在使用set的時候,要使用可變和不可變的時候,只需要在set前面加上mutable或者imutable

set的其餘用法 序號

方法描述

1def +(elem: a): set[a]

為集合新增新元素,x並建立乙個新的集合,除非元素已存在

2def -(elem: a): set[a]

移除集合中的元素,並建立乙個新的集合

3def contains(elem: a): boolean

如果元素在集合中存在,返回 true,否則返回 false。

4def &(that: set[a]): set[a]

返回兩個集合的交集

5def &~(that: set[a]): set[a]

返回兩個集合的差集

6def +(elem1: a, elem2: a, elems: a*): set[a]

通過新增傳入指定集合的元素建立乙個新的不可變集合

7def ++(elems: a): set[a]

合併兩個集合

8def -(elem1: a, elem2: a, elems: a*): set[a]

通過移除傳入指定集合的元素建立乙個新的不可變集合

9def addstring(b: stringbuilder): stringbuilder

將不可變集合的所有元素新增到字串緩衝區

10def addstring(b: stringbuilder, sep: string): stringbuilder

將不可變集合的所有元素新增到字串緩衝區,並使用指定的分隔符

11檢測集合中是否包含指定元素

12def count(p: (a) => boolean): int

計算滿足指定條件的集合元素個數

13def copytoarray(xs: array[a], start: int, len: int): unit

複製不可變集合元素到陣列

14def diff(that: set[a]): set[a]

比較兩個集合的差集

15def drop(n: int): set[a]]

返回丟棄前n個元素新集合

16def dropright(n: int): set[a]

返回丟棄最後n個元素新集合

17def dropwhile(p: (a) => boolean): set[a]

從左向右丟棄元素,直到條件p不成立

18def equals(that: any): boolean

equals 方法可用於任意序列。用於比較系列是否相等。

19def exists(p: (a) => boolean): boolean

判斷不可變集合中指定條件的元素是否存在。

20def filter(p: (a) => boolean): set[a]

輸出符合指定條件的所有不可變集合元素。

21def find(p: (a) => boolean): option[a]

查詢不可變集合中滿足指定條件的第乙個元素

22def forall(p: (a) => boolean): boolean

查詢不可變集合中滿足指定條件的所有元素

23def foreach(f: (a) => unit): unit

將函式應用到不可變集合的所有元素

24def head: a

獲取不可變集合的第乙個元素

25def init: set[a]

返回所有元素,除了最後乙個

26def intersect(that: set[a]): set[a]

計算兩個集合的交集

27def isempty: boolean

判斷集合是否為空

28def iterator: iterator[a]

建立乙個新的迭代器來迭代元素

29def last: a

返回最後乙個元素

30def map[b](f: (a) => b): immutable.set[b]

通過給定的方法將所有元素重新計算

31def max: a

查詢最大元素

32def min: a

查詢最小元素

33def mkstring: string

集合所有元素作為字串顯示

34def mkstring(sep: string): string

使用分隔符將集合所有元素作為字串顯示

35def product: a

返回不可變集合中數字元素的積。

36def size: int

返回不可變集合元素的數量

37def splitat(n: int): (set[a], set[a])

把不可變集合拆分為兩個容器,第乙個由前 n 個元素組成,第二個由剩下的元素組成

38def subsetof(that: set[a]): boolean

如果集合a中含有子集b返回 true,否則返回false

39def sum: a

返回不可變集合中所有數字元素之和

40def tail: set[a]

返回乙個不可變集合中除了第一元素之外的其他元素

41def take(n: int): set[a]

返回前 n 個元素

42def takeright(n: int):set[a]

返回後 n 個元素

43def toarray: array[a]

將集合轉換為陣列

44def tobuffer[b >: a]: buffer[b]

返回緩衝區,包含了不可變集合的所有元素

45def tolist: list[a]

返回 list,包含了不可變集合的所有元素

46def tomap[t, u]: map[t, u]

返回 map,包含了不可變集合的所有元素

47def toseq: seq[a]

返回 seq,包含了不可變集合的所有元素

48def tostring(): string

返回乙個字串,以物件來表示

set 集合 不可變集合

集合 如何建立乙個集合 直接把一堆元素用大括號括起來 使用set 工廠函式,例 set1 set 1,2,3,4,5,5 set1 num1 type num1 集合裡的引數是唯一的,重複的元素會被剔除,集合裡面的元素位置是隨機的,所以無法用索引查詢想要的引數 num1 num1 例子 目的 去除重...

scala不可變集set

set set 集 是代表沒有重複元素的集合。set具備以下性質 元素不重複 不保證插入順序 scala中的集也分為兩種,一種是不可變集,另一種是可變集。不可變集 定義語法 建立乙個空的不可變集,語法格式 scala val var 變數名 set型別 給定元素來建立乙個不可變集,語法格式 scal...

Scala的可變集合和不可變集合

scala 的集合有三大類 序列 seq 集 set 對映 map,所有的集合都擴充套件自 iterable 特質 在 scala 中集合有可變 mutable 和不可變 immutable 兩種型別,immutable 型別的集合 初始化後就不能改變了 注意與 val 修飾的變數進行區別 scal...