(七)定长数组

  • val array_name = new Array[T](length)
  • val array_name = Array("","")
  • 通过()访问,而不是[]
scala> val a = new Array[Int](5)
a: Array[Int] = Array(0, 0, 0, 0, 0) scala> val a = Array("Jack","Luncy")
a: Array[String] = Array(Jack, Luncy)
scala> a(1)
res10: String = Luncy

(八)变长数组

  • import scala.collection.mutable.ArrayBuffer
  • val buff = ArrayBuffer[T]()
  • +=/++=/insert/remove/toArray/sum/max/reverse
scala> val a = scala.collection.mutable.ArrayBuffer[Int]()
a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer() scala> a += 1
res11: a.type = ArrayBuffer(1) scala> a += 2
res12: a.type = ArrayBuffer(1, 2) scala> a += (3,4,5)
res13: a.type = ArrayBuffer(1, 2, 3, 4, 5) scala> a ++=Array(6,7,8)
res15: a.type = ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8)
scala> a.insert(0,0)

scala> a
res17: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 1, 2, 3, 4, 5, 6, 7, 8) scala> a.remove(2)
res18: Int = 2 scala> a
res19: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 1, 3, 4, 5, 6, 7, 8) scala> a.remove(0,1) scala> a
res21: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 3, 4, 5, 6, 7, 8)
scala> a.toArray.sum
res23: Int = 34 scala> a.toArray.min
res24: Int = 1 scala> a.toArray.max
res25: Int = 8
scala> a.trimEnd(2)

scala> a
res27: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 3, 4, 5, 6)

(九)遍历数组

  • for(i <- 0 until array_name.length)
  • for(i<-array_name)
  • 事实上会更多的使用map、filter等等来操作
val b = Array(1,2,3,4,5,6,7,8)
for (i <- 0 until b.length){
println(i)
 val b = Array(1,2,3,4,5,6,7,8)
for (elem <- b){
println(elem)

Map(可变与不可变)

  • 不可变  val age = Map("Jack"->20,"Luncy"->"18")
  • 可变     val age = scala.collection.mutable.Map(...)
  • 初始化 val m = scala.collection.mutable.Map[String,Int]()

Map操作

  • 取值map(key),更好的方式map.getOrElse(key,default)
  • 更新map(key)=value /+=/-=
  • 迭代for((k,v)<-map){},也可以单独key或者value
  • for((k,-)<-map)/for((-,v)<-map){},也可以使用map.keySet或者map.values
    val age = Map("Jack"->20,"Luncy"->"18")
for ((k,v) <- age){
println("key is " + k +"value is "+v)
}
  key is Jackvalue is 20
  key is Luncyvalue is 18

元组操作

  • ()里包含一系列的值
  • 通过._取值,下标从1开始。例如t._1
  • 迭代for(elem <- t.productlterator)
scala> val a  = (1,2,3,4)
a: (Int, Int, Int, Int) = (1,2,3,4) scala> a._1
res41: Int = 1

参考资料:小象学院 陈超 仅供学习研究

scala学习——(1)scala基础(下)的更多相关文章

  1. Scala学习(一)--Scala基础学习

    Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...

  2. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

  3. Scala学习之路----基础入门

    一.Scala解释器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环) scala解释器也被称为REPL,会快速编译s ...

  4. [Scala]Scala学习笔记一 基础

    1. 变量 val定义的值实际上是一个常亮,无法改变其内容 scala> val num = 0 num: Int = 0 scala> num = 2 <console>:1 ...

  5. Scala学习——Brief Scala Tutorial

    因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...

  6. Scala学习(六)---Scala对象

    Scala中的对象 摘要: 在本篇中,你将会学到何时使用Scala的object语法结构.在你需要某个类的单个实例时,或者想为其他值或函数找一个可以挂靠的地方时,你就会用到它.本篇的要点包括: 1. ...

  7. Scala学习(五)---Scala中的类

    Scala中的类 摘要: 在本篇中,你将会学习如何用Scala实现类.如果你了解Java或C++中的类,你不会觉得这有多难,并且你会很享受Scala更加精简的表示法带来的便利.本篇的要点包括: 1. ...

  8. Scala学习随笔——Scala起步

    实验楼学习Scala语言的笔记,课程网址为https://www.shiyanlou.com/courses/490 一.Scala简介 Scala 是一门多范式的编程语言,类似于 Java .设计初 ...

  9. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  10. Scala学习(八)---Scala继承

    Scala继承 摘要: 在本篇中,你将了解到Scala的继承与Java和C++最显著的不同.要点包括: 1. extends.final关键字和Java中相同 2. 重写方法时必须用override ...

随机推荐

  1. SQLSERVER中的资源调控器

    SQLSERVER中的资源调控器 转载自: http://wenku.baidu.com/view/0d92380cf78a6529647d5375.html http://www.cnblogs.c ...

  2. NGUI和UGUI图片字 艺术字(Bitmap图片转文字)制作方法

    用图片字而不是图片 美术和程序的配合,需要程序能够很快抓住问题重点并提出解决方案.美术出的图片字比我们使用的字体更好好看,那么是否要一个个图片去拼成数字呢? NGUI创建图片字 准备材料 美术提供的数 ...

  3. [IDEA_4] IDEA 从 GitHub 上 pull 项目到本地

    0. 说明 通过参考的链接我们已经知道了怎么安装配置 Git  .GitHub ,如何使用 IDEA 将本地项目上传到 GitHub. 现在是学习怎么通过 IDEA 将项目从 GitHub pull ...

  4. Gitkraken的使用

    一个优秀的团队合作离不开git,一个优秀的程序员也离不开git.gitkraken是我在进行软工实践这门课接触到的git的UI界面的工具,它给我留下的印象就是非常好用和方便 怎么个方便法呢? 方便的安 ...

  5. Math.min() / Math.max() 使用方法

    首先弄懂apply 和 call 都是js函数自带的方法.区别如下: apply和call的用法只有一个地方不一样,除此之外,其他地方基本一模一样 1. a.call(b,arg1,arg2…) 2. ...

  6. BZOJ 1345 序列问题 单调栈

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1345 题目大意: 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce( ...

  7. os.path.md

    os.path 我们可以利用os.path模块提供的函数更容易地在跨平台上处理文件. 即使我们的程序不是用于夸平台, 也应该使用os.path来让路径名字更加可靠. Parsing Paths os. ...

  8. Swift 并行编程现状和展望 - async/await 和参与者模式

    这篇文章不是针对当前版本 Swift 3 的,而是对预计于 2018 年发布的 Swift 5 的一些特性的猜想.如果两年后我还记得这篇文章,可能会回来更新一波.在此之前,请当作一篇对现代语言并行编程 ...

  9. php 基于redis计数器类

    本文引自网络 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 本文将使用其incr(自增),get(获取), ...

  10. HTML5调用百度地图API获取当前位置并直接导航目的地的方法

    <!DOCTYPE html> <html lang="zh-cmn-Hans">     <meta charset="UTF-8&quo ...