集合相关api
1、属性
def main(args: Array[String]): Unit = {
val list = List[Int](10,20,30)
println(list.size)
println(list.length)
println(list.contains(100))
println(list.isEmpty)
println(list.nonEmpty)
println(list)
println(list.mkString("#"))
}
2、衍生集合
def main(args: Array[String]): Unit = {
val list = List[Int](10,10,20,30,2,1,1,50)
val list2 = list.distinct
println(list2)
val list3 = list.drop(2)
println(list3)
val list4 = list.dropRight(3)
println(list4)
val head = list.head
println(head)
val last = list.last
println(last)
val list5 = list.init
println(list5)
println("*"*100)
val list11 = list.tail
println(list11)
val list7 = list.reverse
println(list7)
val list8 = list.slice(2,5)
println(list8)
val list9 = list.sliding(3,2)
println(list9.toBuffer)
val list12 = list.take(3)
println(list12)
val list13 = list.takeRight(3)
println(list13)
val list14 = List[Int](10,1,4,5,20)
val list15 = list.intersect(list14)
println(list15)
val list16 = list.diff(list14)
println(list16)
val list17 = list.union(list14)
println(list17)
val list18 = List[String]("aa","bb","cc","dd")
val list19 = List[Int](1,2,3)
val list20 = list18.zip(list19)
println(list20)
val list21 = list20.unzip
println(list21)
}
3、初级计算api
def main(args: Array[String]): Unit = {
val list = List[Int](2,7,1,9,10,5,3)
val max = list.max
val min = list.min
println(max)
println(min)
val list2 = List[String]("zhangsan 20 3000","lisi 15 5000","wangwu 30 1000")
val maxBy = list2.maxBy(x=>x.split(" ")(1).toInt)
println(maxBy)
val list3 = List[(String,Int)]( ("ZHANGSAN",1000),("LISI",2500),("WANGWU",3000),("WANGWU",2500) )
println(list3.minBy(_._2))
println(list.sum)
val list4 = list.sorted
println(list4)
val list5 = list4.reverse
println(list5)
println(list3.sorted)
println(list3.sortBy(_._2))
println(list.sortWith((x, y) => x < y))
println(list.sortWith((x, y) => y < x))
}
4、高级api
def main(args: Array[String]): Unit = {
val list = List[String]("spark", "hello", "java", "python")
val list2 = list.map(x => x.length)
println(list2)
val list3 = List[Int](10, 20, 30, 40)
val list4 = list3.map(x => x * x)
println(list4)
println("-" * 100)
val list5 = List[(String, Int, String)](("lisi", 20, "深圳"), ("zhangsan", 15, "北京"))
list5.foreach(println(_))
println("-" * 100)
list5.foreach(println)
println("-" * 100)
val list6 = List[List[String]](
List[String]("aa", "bb"),
List[String]("cc", "dd"),
List[String]("ee", "ff")
)
val list7 = list6.flatten
println(list7)
println("-" * 100)
val list8 = List[List[List[String]]](
List(List[String]("aa", "bb"), List[String]("cc", "dd")),
List(List[String]("ee", "ff"), List[String]("oo", "xx"))
)
val list9 = list8.flatten
println(list9)
val list10 = List[String]("spark", "hello")
println(list10.flatten)
println("-" * 100)
val list11 = List[String]("hadoop spark", "hello java python")
val list12 = list11.map(x => x.split(" "))
val list13 = list12.flatten
println(list13)
println(list11.flatMap(_.split(" ")))
println("-" * 100)
val list14 = List[Int](10, 2, 4, 5, 7, 9)
println(list14.filter(_ % 2 == 0))
println("-" * 100)
val list15 = List[(String, String)](
("ZHANGSAN", "SHENZHEN"),
("LISI", "BEIJING"),
("WANGWU", "SHENZHEN"),
("ZHAOLIU", "SHENZHEN")
)
val list16 = list15.groupBy(_._2)
println(list16)
println("-" * 100)
val list17 = List[Int](10, 2, 4, 5, 7, 9)
val result = list17.reduce((agg, curr) => {
println(s"agg=${agg} curr=${curr}")
agg * curr
})
println(result)
println("-" * 100)
val result2 = list17.reduceRight((curr, agg) => {
println(s"agg=${agg} curr=${curr}")
agg - curr
})
println(result2)
println("-" * 100)
list17.fold(100)((agg, curr) => {
println(s"agg=${agg} curr=${curr}")
agg - curr
})
println("-" * 100)
list17.foldRight(200)((curr, agg) => {
println(s"agg=${agg} curr=${curr}")
agg - curr
})
}