本文主要是介绍scala面向函数编程:集合 不可变集合 immutable,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向函数编程:集合
不可变集合 immutable
List
package scala
object Demo17List {
def main(args: Array[String]): Unit = {
/**
* list , 相当于java中的ArrayList
* scala 默认的list 是不可变的
*
*/
val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 1)
/**
*
* list中常用的方法
* 下面所有的方法都不会修改源集合
*/
//通过下表取数
println(list(1))
println(list.mkString(",")) //拼接成字符串
println(list.head) //取第一个元素
println(list.last) //取最后一个元素
println(list.take(3)) //取前几个元素
println(list.size)
println(list.length)
println(list.distinct) //去除重复元素
println(list.reverse) //反转集合,返回一个新的集合
println(list.tail) //返回不包含第一个元素所有的元素
println(list.min) //取最小值
println(list.max) //取最大值
println(list.sum) //求和
/**
* 高级方法
*
*/
/**
* map 函数
* 将集合中的元素一个一个传递给后面的函数,最终返回一个新的集合
* 数据行数不变,原来是多少行处理完还是多少行
*
*/
val list1: List[Int] = list.map(i => i * 2)
println(list1)
//取出所有的奇数
/**
* filter函数, 多集合中的元素进行过滤
*
* 后面的函数返回true 保留数据
* 后面的函数返回false 过滤数据
*
* 集合的数据量会减少
*/
val list2: List[Int] = list.filter((i: Int) => i % 2 == 1)
println(list2)
/**
* sort 函数
*
* sortBy: 通过某一个字段进行排序,默认是升序
* sortWith: 传入一个比较规则进行排序
*
*/
val sortList: List[Int] = list.sortBy((i: Int) => -i)
println(sortList)
val list5: List[Int] = list.sortWith((i: Int, j: Int) => i > j)
println(list5)
val strs = List("java,spark,hadoop,java", "hive,scala,hbase", "hive,scala,hbase", "flume,sqoop")
/**
* flatMap 函数
*
* 将集合中的元素按照一个分隔方法分隔成多行
* 一行转换成多行
*
* 需要一个返回值为数组或者集合的函数
*
*
*/
val words: List[String] = strs.flatMap((line: String) => line.split(","))
println(words)
/**
* 结果数据不变--- map
* 结果数据变少--- filter
* 结果数据变多 -- flatMap
*
*/
/**
*
* groupBy 函数
*
* 通过某一个列进行分组,将同一个列分到同一个组内
*
*/
val map: Map[String, List[String]] = words.groupBy((word: String) => word)
for (elem <- map) {
println(elem)
}
/**
* 遍历
*
* foreach:函数,遍历j集合
* 将集合中的元素一个一个传递给后面的函数,没有返回值
*/
for (elem <- list) {
println(elem)
}
list.foreach((i: Int) => println(i))
println("=" * 100)
//简写
list.foreach(i => println(i))
println("=" * 100)
list.foreach(println(_))
println("=" * 100)
//多态
list.foreach(println)
}
}
这篇关于scala面向函数编程:集合 不可变集合 immutable的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!