scala面向函数编程:集合 不可变集合 immutable
2021/7/16 1:08:45
本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南