scala学习第六天
2017-02-26 00:00
183 查看
package com.learn.scala import scala.collection.mutable.ArrayBuffer /** * scala学习第六天 * Created by zhuqing on 2017/2/26. */ object Day6Array { def main(args: Array[String]): Unit = { /** * 数组的变遍,可以像Java中Foreach 那样逐个遍历,可以按位置遍历 */ for (a <- this.createArray()) { print(a + " ") } println() for (a <- this.createArrayBuffer()) { print(a + " ") } println() val arr = this.createArray() // 0 until 10 ,是0到9的区间Range , 不包含10 for (i <- 0 until arr.length) { print(arr(i) + " ") } println() val arrayBuffer = this.createArrayBuffer() for (i <- 0 until arr.length) { print(arr(i) + " ") } println() //生成带步长的区间 println(0 until(arr.length, 2)) //打印Range(0, 2, 4, 6, 8), 步长为2 for (i <- 0 until(arr.length, 2)) { print(arr(i) + " ") //打印1 3 5 7 9 } println() //区间的翻转 ,reverse是GenSeqLike的方法,实现了它的集合都有这样的功能 //关于Range的Api :http://www.scala-lang.org/api/current/scala/collection/immutable/Range.html println(0 until arr.length reverse) //Range(9, 8, 7, 6, 5, 4, 3, 2, 1, 0) /** * 数组的转换,可以使用for循环的yield, */ //去数组arr的偶数位的数并乘以2 val arrNew = for (i <- 0 until(arr.length, 2)) yield arr(i) * 2 //数组 yield后成为Vector println(arrNew.getClass); //打印class scala.collection.immutable.Vector //toArray转换为Array,toArray是特质GenTraversableOnce中的方法 //Vector的Api :http://www.scala-lang.org/api/current/scala/collection/immutable/Vector.html println(arrNew.toArray.mkString(" ")); //2 6 10 14 18 /** * 数组的另一种转换,是使用自带的Map方法 */ //与上面的功能相似 val arrNew2 = arr.filter((a: Int) => { a % 2 != 0 }).map((a: Int) => { a * 2 }) println(arrNew2.mkString(" ")); //2 6 10 14 18 //与上面的功能一样,scala中的lambda可以比Java中的更简单一些,如下面"_"表示参数 val arrNew3 = arr.filter(_%2!=0).map(_*2); println(arrNew3.mkString(" ")); //2 6 10 14 18 /** * 数组还有一些常用的算法,sum,max,min,sort , mkString:拼接成字符串 * 可以参考API:http://www.scala-lang.org/api/current/scala/Array.html * http://www.scala-lang.org/api/current/scala/collection/mutable/ArrayBuffer.html */ println(arr sum)//arr的和 println(arr max)//arr的最大值,maxBy可以自己比较最大值 //前面的遍历数组打印,可以这样实现 println(arr mkString(" ")) } /** * 创建一个1到10的ArrayBuffer * * @return */ def createArrayBuffer(): ArrayBuffer[Int] = { ArrayBuffer[Int](1 to 10: _*) } /** * 创建1到10的Array * * @return */ def createArray(): Array[Int] = { Array[Int](1 to 10: _*) } }
相关文章推荐
- Scala学习第六天 Map、Tuple、Zip实战解析
- Scala学习第六天 Map、Tuple、Zip实战解析
- Scala学习(四)内建控制器
- C# 学习笔记 -- 第六天 正规表达式
- Scala学习(一)
- Scala学习札记_一 筹建开发环境(Intellij IDEA + scala插件)
- 学习 NodeJS 第六天:主程 Ry 访谈录
- Scala学习笔记1
- Scala学习(二)
- jQuery框架学习第六天:jQuery中的Ajax应用
- [转]十天学习PHP之第六天(PHP)----学会添加删除修改数据 (2009-11-25 14:26)
- 马牛的C#学习(第六天)-实践!用C#解决汉诺塔问题
- 跟“无为”学习Ajax技术第六天
- 开始学习Scala
- 学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
- scala学习笔记☞一---------Scala 初探
- 学习ASP.NET第六天
- 跟“无为”学习Ajax技术第六天
- Scala学习(三)函数式对象
- scala学习(二)