Scala学习笔记——20170820
来源:互联网 发布:电信网络新型诈骗 编辑:程序博客网 时间:2024/06/06 19:30
List集合中的各种方法
注意: List集合是不可变的,增、删、改只会返回一个新的集合
object ListDemo0819 { def main(args: Array[String]): Unit = { val list = List(1 to 20 by 2: _*) //后一个元素 = 前一个元素 + 2 println("list->" + list) val list1 = list ++ List(21, 22) //合并集合 println("list1->" + list1) val list2 = 22 +: 21 +: list // 向集合左边添加2个元素 println("list2->" + list2) val list3 = list ::: List(21, 22) // 同 list ++ List(21, 22) println("list3->" + list3) val list4 = 22 :: 21 :: list // 同 22 +: 21 +: list println("list4->" + list4) val list5 = list.companion(4, 5) // TODO println("list5->" + list5) println(list.drop(5)) // 删除集合前5个元素 println(list.dropWhile(_ < 7)) // 循环删除小于10的元素,遇到不满足的,马上跳出循环 println(List("hello", "world").mapConserve(_.toUpperCase)) // 对集合所有元素操作,这里是转换成大写 println(list.reverse) // 反转顺序 println(list) println(list.slice(2, 6)) // 获取角标为2-5的元素 println(list.span(_ < 6)) // 按元素大小 拆分集合 println(list.splitAt(2)) // 按元素的位置 拆分集合 println(list.stringPrefix) // 返回类型 println(list.take(3)) // 获取前3个元素 println(list.takeWhile(_ < 15)) // 获取小于15的元素,遇到不满足的,马上跳出循环 println(list.takeRight(3)) // 获取右边3个元素 println("hello world".toList) // 转换为List集合 val list6 = List(1, 2, 4) println(list6./:(0)((x, y) => x + y + 1)) println(list.addString(new StringBuilder("a"))) // 把集合转换成String并且以a开头 println(list.apply(5)) //把集合前5个元素删除,然后返回当前的第一个元素 println(list.collect { case i: Int => i + "b" }) //给每个元素添加一个String println(list.collectFirst { case i: Int => i + "b" }) //获取第一个 println(list.take(3)) println(list.take(3).companion(2).toList) println(list.contains(1)) //是否包含 println(list.containsSlice(List(1, 3))) val array = new Array[Int](6) list.copyToArray(array) //list.copyToArray(array, 4) //list.copyToArray(array, 1, 3) println(array.toList) println(list.count(_ < 15)) // 获取集合中比15小的元素的个数 println(list.diff(List(1, 5, 7))) // 集合A - 集合B println(List(12, 3, 2, 2, 12, 5).distinct) //去重 println(list.endsWith(List(17, 19))) // 判断结尾 println(list.equals(List(11))) // 判断2个集合是否相等 println(list.contains(19)) // 判断是否包含19 println(list.exists(_ < 5)) // 判断是否包含小于5的元素 println(list.filter(_ % 3 == 0)) // 取出能整除3的数 val list7 = List(List(1, 2), List(4, 7)) println(list7.flatMap(_.toList)) // 合并所有元素为一个新集合 println(list.fold(2)((x, y) => x + y)) // 求和 + 2 list.foreach(println) // 遍历集合,打印 println(list.groupBy(_ + "a")) println(list.map(_ + "a")) // 对所有元素进行操作 println(list.mkString(",")) // 使用,将集合拆分成String println(list.mkString) // 直接转换成String println(list.patch(3, List(1, 2), 0)) println(list.patch(3, List(1, 2), 2)) // 从角标为3的位置插入一堆元素List(0,0),去除其后面2位元素 println(list.product) // 求积 println(list.sum) //求和 println(list.reduce(_ + _)) //求和 println(list.reduce(_ * _)) //求积 println(list) println(list.scan(1)(_ + _)) // 生成一个从1开始的集合,新集合第n个元素 = 上一个集合的第n-1个元素 + 新集合第n-1个元素 list.sliding(4) // 四个一组,生成Iterator list.sliding(4).foreach(println) // 打印Iterator的内容 list.sliding(3, 5).foreach(println) // 3个一组,从原集合的第5个元素开始 println(list.sorted) // 升序 println(list.sortWith(_ > _)) // 降序 println(list.union(List(99, 100))) // 取并集 println(list.zip(list.reverse)) //合并集合,角标相同的组成一个新的集合 println(list.zipWithIndex) // 元素+角标 组成新集合 val list8 = list.unzip(x => (x, x + "a")) //转为2个集合(原, 新) println(list8) println(list.view(0,3).force) //获取角标为0到3的元素(不包括3) println(list) list.updated(2, 100).foreach(println) //修改角标为2的元素为100 }}
阅读全文
0 0
- Scala学习笔记——20170820
- Scala学习笔记—语法
- Scala学习笔记1——初始Scala
- scala 学习笔记——集合
- Scala学习笔记——20170817
- Scala学习笔记——20170818
- Scala学习笔记——20170819
- Scala学习笔记(一)—chapter1
- Scala学习笔记(二)—chapter2
- Scala学习笔记(三)—chapter3
- 学习笔记—scala基础II
- 学习笔记—scala高级编程
- Scala学习笔记——不停更新中。。。
- Scala 学习笔记(二)— Everything is an object
- Scala学习笔记1
- Scala学习笔记2
- scala语言学习笔记
- Scala学习笔记
- Java之Properties(配置文件类)
- 业务办理
- Leetcode-124: Binary Tree Maximum Path Sum
- UVA
- Android应用组件之片段(Fragment)介绍3
- Scala学习笔记——20170820
- 关于批量处理问题
- Java基础面试
- 简单题
- Spring Boot项目像普通项目一样通过Tomcat发布与部署、运行
- GIL对线程效率的影响
- ubuntu14.04安装scikit-learn
- 如何计算两点之间的距离
- 【ROBOT XRT1】 玩转 红外遥控