set集是不重複元素的結合。集不保留順序,預設是以雜湊集實現。
如果想要按照已排序的順序來訪問集中的元素,可以使用sortedset(已排序資料集),已排序的資料集是用紅黑樹實現的。
預設情況下,scala 使用的是不可變集合,如果你想使用可變集合,需要引用 scala.collection.mutable.set 包。
1、set不可變集合的建立
//預設不可變集合
val set = set(1, 2, 3)
println(set)
2、set可變集合的建立
如果import了可變集合,那麼後續使用預設也是可變集合
import scala.collection.mutable.set
val mutableset = set(1, 2, 3)
import scala.collection.mutable
val mset1 = mutable.set(1,2,3)
3、可變集合的元素新增
mset1.add(4)
mset1+= 6
// 注意該方法返回乙個新的set集合,而非在原有的基礎上進行新增
val set = mset1.+(7)
val set2 = mset1 + 7
println(set)
println(mset1)
4、可變集合的元素刪除
//set 中具體的值
mset1-= 1
println(mset1)
//set 中具體的值
mset1.remove(2)
mset1 remove 5
println(mset1)
5、遍歷
for(x <- mset1)
6、set更多常用操作
序號方法描述1
def +(elem: a): set[a]
為集合新增新元素,並建立乙個新的集合,除非元素已存在
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 ++(elems: a): set[a]
合併兩個集合
7def drop(n: int): set[a]]
返回丟棄前n個元素新集合
8def dropright(n: int): set[a]
返回丟棄最後n個元素新集合
9def dropwhile(p: (a) => boolean): set[a]
從左向右丟棄元素,直到條件p不成立
10def max: a
查詢最大元素
11def min: a
查詢最小元素
12def take(n: int): set[a]
返回前 n 個元素
黑猴子的家 Hadoop Checkpoint機制
fsimage和edit log合併的過程如下圖所示 其實這個合併過程是乙個很耗i o與cpu的操作,並且在進行合併的過程中肯定也會有其他應用繼續訪問和修改hdfs檔案。所以,這個過程一般不是在單一的namenode節點上進行從。如果hdfs沒有做ha的話,checkpoint由secondname...
黑猴子的家 FileInputFormat切片機制
1 job提交流程原始碼詳解 waitforcompletion submit 1 建立連線 connect 1 建立提交job的 new cluster getconfiguration 2 判斷是本地yarn還是遠端 initialize jobtrackaddr,conf 2 提交job su...
黑猴子的家 Zookeeper Java API
1 code github 2 環境準備 1 建立乙個工程 2 解壓zookeeper 3.4.10.tar.gz檔案 3 拷貝zookeeper 3.4.10.jar jline 0.9.94.jar log4j 1.2.16.jar netty 3.10.5.final.jar slf4j ap...