Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
来源:互联网 发布:udp编程bind函数的作用 编辑:程序博客网 时间:2024/05/17 17:38
package com.dt.scalaInAction.demo_005import scala.collection.mutable.ArrayBufferimport scala.util.Sorting/** * Scala数组操作实战详解 */object ArrayOps { def main(args: Array[String]): Unit = { //定义长度为10的Int型数组(定长) val nums = new Array[Int](10) //定义长度为10的String型数组 val a = new Array[String](10) //静态定义方式 val s = Array("Hello", "World") //修改数组中的值 s(0) = "Goodbye" //for(e <- s) print(e+" ") /** * 定义 不定长 数组 */ val b = new ArrayBuffer[Int](); //val b: ArrayBuffer[Int] //追加 b += 1 //(1) //追加元祖 b += (1, 2, 3, 5) //1 1 2 3 5 //追加数组 ++= b ++= Array(8, 13, 21) //1 1 2 3 5 8 13 21 //切除后5个元素 b.trimEnd(5) //1 1 2 //切除前3个元素 //b.trimStart(3) //插入 def insert(n: Int, elems: Int*):Unit 在索引为n下插入 b.insert(2, 6) //1 1 6 2 //插入多值 b.insert(2, 7, 8, 9) //1 1 7 8 9 6 2 //删除指定下标对应的值 b.remove(2) //1 1 8 9 6 2 //删除指定下标开始的n个元素 def remove(n: Int, count: Int): Unit b.remove(2, 3) //1 1 2 删除下标为2 3 4对应的值 //可变的数组-->不可变数组 ArrayBuffer-->Array 此时不能采用 += 等操作了 val c = b.toArray //val c: Array[Int] //遍历 //for(e <- a) print(e+" ") //null null null null null null null null null null val d = Array(2, 3, 5, 7, 11) //2 3 5 7 11 // for yield 数组中每个元素乘以二 val result = for (e <- d) yield 2 * e //4 6 10 14 22 // for 中过滤筛选 val result2 = for (e <- d if e % 2 == 0) yield 2 * e //4 // for 中过滤筛选 方式同上 val result3 = d.filter(_ % 2 == 0).map(_ * 2) //4 //for(e <- result3) print(e+" ") //求和 求最大值 val sum = Array(1, 2, 3, 4, 5).sum //15 val sum1 = Array("Spark","Scala").max //Spark val sum2 = Array(1, -1, 221).max //Spark //排序 val arr = Array(3, 7, 1, 9, 3) //sorted 操作不改变原来的数组 val r = arr.sorted //1 3 3 7 9 //快速排序 quickSort改变了原来的数组 var r2 = scala.util.Sorting.quickSort(arr) //1 3 3 7 9 val array = Array(1, 2, 3, 4, 5) //1,2,3,4,5 //连接 相当于JS数组中的join()方法 def mkString(sep: String): String val string = array.mkString(",") //def mkString(start: String, sep: String, end: String): String val string1 = array.mkString("(", "-", ")") //(1-2-3-4-5) /** * 定义矩阵 */ val matrix = Array.ofDim[Int](3,4) //val matrix: Array[Array[Int]] //赋值 matrix(2)(1) = 42 /** * 定义二维数组 */ val triangle = new Array[Array[Int]](10) for(index <- 0 until triangle.length){ triangle(index) = new Array[Int](index + 1) } }}
0 0
- Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第9讲 Scala的内部类实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第11讲 Scala中的apply实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
- Dt大数据梦工厂王家林老师 Scala实战详解之第13讲 抽象类、抽象字段、抽象方法
- Dt大数据梦工厂王家林老师 Scala实战详解之第3讲 Tuple、Array、Map与文件操作入门实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第10讲 Scala单例对象、伴生对象实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之 第2讲Scala函数定义,流程控制,异常处理入门实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第12讲 Scala中的继承:超类的构造、重写字段、重写方法代码实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第14讲 Scala中作为接口的trait、在对象中混入trait代码实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第15讲 Scala多重继承、多重继承构造器执行顺序及AOP实现
- Dt大数据梦工厂王家林老师 Scala实战详解之第16讲 Scala中包的定义、包对象、包的引用、包的隐式引用
- Dt大数据梦工厂王家林老师 Scala实战详解之第17讲 Scala中包、类、对象、成员、伴生类、伴生对象访问权限
- Dt大数据梦工厂王家林老师 Scala实战详解之第4讲 For与Function进阶实战、Lazy的使用
- 王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典 - 第71讲
- Scala 深入浅出实战经典 第5讲:Scala数组操作实战详解
- nagios - remote check http
- 内核中media设备驱动的多态与继承
- Dt大数据梦工厂王家林老师 Scala实战详解之第4讲 For与Function进阶实战、Lazy的使用
- groovy获取camel风格字符窜
- 我的2年苦逼狗血相亲经历(3)
- Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
- html表单
- Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
- pushViewController 与 presentViewController 与 TabBarController 之间切换VC
- flume入门教程
- Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
- 表格属性
- XHTML表单日记
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解