Scala(四)【集合】
阿新 • • 發佈:2020-07-24
目錄
一.Array
package com.bigdata.scala.day01 /** * @description: 不可變陣列&&可變陣列 * @author: HaoWu * @create: 2020/7/24 */ object $10_Array { def main(args: Array[String]): Unit = { //**************************不可變陣列*********************************// //1.建立 val arr1 = new Array[String](10) //方式一 val arr2 = Array[String]("aaa", "bbb", "ccc") //方式二 //2.新增 val arr3 = arr2.+:("ddd") //新增元素,返回新陣列 val arr4 = arr2.++(arr3) //新增陣列,返回新陣列 arr4(0) = "eee" //修改元素 //3.查詢 val str: String = arr4(0) //根據索引,獲取單值 arr4.foreach(x => println(x)) //遍歷 //4.刪除 val arr5: Array[String] = arr2.drop(2) //刪除前2個元素 //5.轉可變陣列 val buffer = arr5.toBuffer //********************************可變陣列*******************************// //1.建立 import scala.collection.mutable.ArrayBuffer //匯入可變的包 val muarr: ArrayBuffer[String] = new ArrayBuffer[String](10) //方式一 val muarr1: ArrayBuffer[String] = ArrayBuffer("aaa", "bbb", "ccc") //方式二 //2.新增 val muarr2 = muarr1.+:("eee") //新增元素,返回新陣列 muarr1.+=:("eee") //可變陣列新增單個元素 muarr1.append("hhh", "iii") //可變陣列後添加個元素 muarr1.++=(ArrayBuffer("fff", "ggg")) //可變陣列新增陣列 muarr1.insert(1, "abc", "bcd") //從索引位置開始新增多個元素 //3.查詢 muarr1.foreach(println(_)) //4.修改 muarr1(2) = "dfg" //根據索引更新單個元素 //5.刪除 muarr1 - "aaa" //根據值,刪除單個元素 muarr1.remove(1) //根據索引,刪除單個元素 muarr1 --= ArrayBuffer("bbb", "ccc") //根據值,刪除多個元素 val muarr11 = muarr1 -- ArrayBuffer("bbb", "ccc") //根據值,刪除多個元素,返回新陣列 //6.轉不可變陣列 val array = muarr1.toArray //********************************多維陣列*******************************// //建立 val dimArr: Array[Array[Int]] = Array.ofDim[Int](2,3) //遍歷 dimArr.foreach(x=>x.foreach(y=>println(y))) } }
二. List
package com.bigdata.scala.day01 /** * @description: 不可變List&&可變List * @author: HaoWu * @create: 2020/7/24 */ object $09_List { def main(args: Array[String]): Unit = { //**************************不可變List*********************************// //1.建立 val list = List(1, 2, 3, 4, 5, 6) //設定值 var list1: List[Int] = Nil //建立,設定空list //2.新增 val list2 = list.+:(7) //在前新增單個元素,返回List val list3 = list.:+(8) //在後新增單個元素,返回List val list4 = list.::(9) //在後新增單個元素,返回List val list5 = 9 :: list //在前新增單個元素,返回List val list6 = list ::: List(1, 2, 3) //在後新增集合,返回List val list7 = List(1, 2, 3) ::: list //在前新增集合,返回List //3.查詢 list.foreach(x => println(x)) //**************************可變List*********************************// //1.建立 import scala.collection.mutable.ListBuffer //導包 val listBuffer = ListBuffer(1, 2, 3, 4, 5) //2.新增 listBuffer.+=(1, 2, 3) //在後新增多個元素 listBuffer ++= List(7, 8, 9) //在後新增集合元素 //3.查詢 listBuffer.foreach(x => println(x)) //4.刪除 listBuffer.remove(1) //根據索引刪除單個元素 listBuffer -= 4 //刪除第一個元素,4代表第4個元素 listBuffer --= List(1,3,5) //刪除包含集合中的元素 } }
三.Set
package com.bigdata.scala.day01 /** * @description: TODO * @author: HaoWu * @create: 2020年07月24日 */ object $11_Set { def main(args: Array[String]): Unit = { //**************************不可變Set*********************************// //1.建立 val set = Set(1, 2, 3, 4) //2.新增 val set1 = set + (8, 9, 10) //新增元素,個數可變 val set2 = set ++ Set(4, 5, 6) //新增Set //3.查詢 set.foreach(println(_)) //4.刪除 val set3 = set1 - (8, 9) //刪除元素,個數可變 val set4 = set2 -- Set(4, 5) //刪除Set //**************************可變Set*********************************// //1.建立 import scala.collection.mutable.Set //導包 val muSet = Set(1, 2, 3) //2.新增 muSet += 4 //新增單個元素 muSet ++= Set(5, 6) //新增Set集合 //3.查詢 muSet.foreach(x => println(x)) //4.刪除 muSet -= 10 //刪除單個元素 muSet --= Set(5,6) //刪除Set集合 } }
四.Tuple
package com.bigdata.scala.day01
/**
* @description: TODO
* @author: HaoWu
* @create: 2020年07月24日
*/
object $13_Tuple {
def main(args: Array[String]): Unit = {
//1.建立
val tuple = ("zhangsan", 20, "Beijing") //Tuple3型別
val tuple1 = ("name", "lisi") //對偶元祖,Tupl2型別
val tuple2 = ("name" -> "lisi")
val tuple3 = List[(String, Int, String)](
("zhangsan", 20, "beijing"),
("lisi", 30, "shenzhen")) //集合元素是元祖
//2.查詢
val value1 = tuple._1
val value2 = tuple._2
val value3 = tuple._3
}
}
五.Map
package com.bigdata.scala.day01
/**
* @description: TODO
* @author: HaoWu
* @create: 2020年07月24日
*/
object $12_Map {
def main(args: Array[String]): Unit = {
//**************************不可變Map*********************************//
//1.建立
val map = Map[String, String](
"name" -> "zhangsan",
"age" -> "20",
"address" -> "BeiJing") //方式一
val map2 = Map[String, String](
("name", "lisi"),
("age", "30"),
("address", "ShenZhen")) //方式二
//2.新增/修改
val map11 = map.+("email" -> "1001", "id" -> "11") //新增元素
val map21 = map2 + (("dept", "11")) //新增元素
val map22 = map2.++(map) //新增Map
//3.查詢
val value = map11.getOrElse("email", "null") //根據key獲取值,key不存在值設null
map.foreach(x => println(x._1)) //遍歷key
map.keys.foreach(x => println(x)) //遍歷key
map.values.foreach(x => println(x)) //遍歷value
//**************************可變Map***********************************//
//1.建立
import scala.collection.mutable.Map
val muMap = Map[String, String](
("name", "lisi"),
("age", "20")) //方式一
val muMap2 = Map[String, String](
("name", "lisi"),
("age", "30")) //方式二
//2.新增/修改
muMap += (("address", "Henan")) //新增單個元素
muMap2 += ("address" -> "Henan") //新增單個元素
//3.查詢
val value1 = muMap.getOrElse("email", "null") //根據key獲取值,key不存在值設null
muMap.foreach(x => println(x._1)) //遍歷key
muMap.keys.foreach(x => println(x)) //遍歷key
muMap.values.foreach(x => println(x)) //遍歷value
//4.刪除
muMap -= "name"
}
}