水善利萬物而不爭,處眾人之所惡,故幾于道??
目錄
一、不可變List
? 1. 創(chuàng)建List
? 2. 取指定的數(shù)據(jù)
? 3. 向List中添加元素
? 4. 遍歷List
? 5. 集合間合并 - 扁平化處理
二、可變List
? 1. 創(chuàng)建可變集合對象
? 2. 添加元素
? 3. 修改元素
? 4. 刪除元素
一、不可變List
1. 創(chuàng)建List
val list:List[Int] = List(1,2,3,4,3)
??創(chuàng)建一個List,數(shù)據(jù)有序,可重復,因為List是seq下面的
??這種方式創(chuàng)建List是通過apply方法創(chuàng)建對象,因為List是個抽象類,不能通過new的方式創(chuàng)建對象
2. 取指定的數(shù)據(jù)
println(list(1))
??取出List中下標為1的數(shù)據(jù)
3. 向List中添加元素
var list1:List[Int] = list.:+(5)
??將元素5添加到List末尾
var list2:List[Int] = list.+:(6)
??將元素6添加到List頭部
val NilList:List[Int] = Nil.::(1)
??Nil是List的一個空對象。將1添加到List中,此時List中只有一個元素1
val NilList2:List[Int] = 11 :: 22 :: 33 :: Nil
??將11,22,33添加到空List中。
??運算符中有冒號,且冒號在右邊,運算順序從右向左,::是列表里面的方法,不是Int里面的方法,所以Nil::11會報錯
val list3 = List(4, 5, 6, 7)
val list4 = List(1, 2)
val list5: List[Any] = list3 :: list4
println(list5) // 直接能輸出list,是因為list重寫了toString方法
結(jié)果:
List(List(4, 5, 6, 7), 1, 2)
??運算順序是從右到左,將list3加入到list4里面,是把list3整體這個List加入到list4里面
4. 遍歷List
list.foreach(println)
for (elem <- list) {
println(elem)
}
......
和遍歷數(shù)組差不多
5. 集合間合并
??扁平化處理:將一個整體拆成一個一個的個體
val list3 = List(4, 5, 6, 7)
val list4 = List(1, 2)
val list6: List[Int] = list3 ::: list4
println(list6)
結(jié)果:
List(4, 5, 6, 7, 1, 2)
二、可變List
1. 創(chuàng)建可變集合對象
val list: ListBuffer[Int] = new ListBuffer[Int]()
??點進去看,發(fā)現(xiàn)ListBuffer是個類,可以直接new對象
val list: ListBuffer[Int] = ListBuffer(1, 2, 3)
??通過伴生對象的apply方法創(chuàng)建對象
2. 添加元素
建議:可變用方法,不可變用符號
list.append(99,98)
list.insert(0,88,77)
??append向集合中追加元素,可以一次添加多個
??insert向指定的位置插入元素,可以插入多個,從插入位置順序插入
3. 修改元素
list(0) = 8
list.update(1,11)
??通過索引修改
??通過update方法修改指定位置的元素文章來源:http://www.zghlxwxcb.cn/news/detail-555080.html
4. 刪除元素
list.remove(0)
list.remove(0,3)
??刪除下標位置為0的元素
??從下標為0的位置開始刪除,刪除3個元素文章來源地址http://www.zghlxwxcb.cn/news/detail-555080.html
到了這里,關(guān)于Scala集合 - List的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!