数组声明
scala> val a = new Array[Int](10)
a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
使用时 a(0)--- 和 Java不同 Java: a[0]
scala> a(0)=1
scala> for(x<-a){print(x)}
1000000000
----------------------------------
scala通过mkString方法把一个集合转化为一个字符串
scala> val b =Array("hello","world","!")
b: Array[String] = Array(hello, world, !)
scala> b.mkString
res9: String = helloworld!
scala> b.mkString("-")
res10: String = hello-world-!
----------------------------------
类型推断:
scala> val c = Array("hello",7)
c: Array[Any] = Array(hello, 7)
----------------------------------
Array长度不可变 c.length 获取长度
scala> val c = Array("hello",7)
c: Array[Any] = Array(hello, 7)
scala> c.length
res11: Int = 2
scala>
scala> c(3)
java.lang.ArrayIndexOutOfBoundsException: 3
... 28 elided
----------------------------------
ArrayBuffer 是可变长的
scala> import scala.collection.mutable._
import scala.collection.mutable._
scala> val ab = new ArrayBuffer[Int]()
ab: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
scala> ab(0)=1
java.lang.IndexOutOfBoundsException: 0
at scala.collection.mutable.ResizableArray.update(ResizableArray.scala:48)
at scala.collection.mutable.ResizableArray.update$(ResizableArray.scala:47)
at scala.collection.mutable.ArrayBuffer.update(ArrayBuffer.scala:48)
... 28 elided
注意添加元素的方式
scala> ab += 1
res14: ab.type = ArrayBuffer(1)
scala> ab += 2
res15: ab.type = ArrayBuffer(1, 2)
scala> ab += 3
res16: ab.type = ArrayBuffer(1, 2, 3)
----------------------------------
ArrayBuffer 添加Array 使用 ++=
scala> val f = Array(100,200,300)
f: Array[Int] = Array(100, 200, 300)
scala> ab ++=f
res18: ab.type = ArrayBuffer(1, 2, 3, 100, 200, 300)
----------------------------------
ArrayBuffer 插入元素
scala> ab.insert(3,999)
scala> print(ab)
ArrayBuffer(1, 2, 3, 999, 100, 200, 300)
----------------------------------
ArrayBuffer 移除元素
scala> ab.remove(3)
res21: Int = 999
scala> print(ab)
ArrayBuffer(1, 2, 3, 100, 200, 300)
----------------------------------
ArrayBuffer删掉多个元素
scala> print(ab)
ArrayBuffer(1, 2, 3, 100, 200, 300)
scala> ab.remove(3,3)
scala> print(ab)
ArrayBuffer(1, 2, 3)
----------------------------------
Array 和 ArrayBuffer 的转换:toArray toBuffer
scala> val abArray = ab.toArray
abArray: Array[Int] = Array(1, 2, 3)
scala> val abArrayBuffer = abArray.toBuffer
abArrayBuffer: scala.collection.mutable.Buffer[Int] = ArrayBuffer(1, 2, 3)
----------------------------------
遍历 数组
scala> for(x<- 0 until ab.length){print(ab(x))}
12345678910
scala>
----------------------------------
指定步长
scala> for(x<- 0 until (ab.length,2)){print(ab(x))}
13579
scala>
----------------------------------
反向遍历 .reverse
scala> for(x<- (0 until (ab.length,2)).reverse ){print(ab(x))}
97531
----------------------------------
简单的遍历
scala> for(x <- ab) print(x)
12345678910
----------------------------------
数组元素求和
scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)
scala> val asum = a.sum
asum: Int = 15
----------------------------------
数组最大值 最小值
scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)
scala> a.max
res42: Int = 5
scala> a.min
res43: Int = 1
----------------------------------
数组排序
scala> import scala.util._
import scala.util._
scala> Sorting.quickSort(a)
scala> for(x<- a) print(x+" ")
0 1 2 3 3 4 5 7 8 77 88 99
----------------------------------
数组 转为字符串
scala> a.mkString("-")
res51: String = 0-1-2-3-3-4-5-7-8-77-88-99
scala> a.mkString("<",",",">")
res52: String = <0,1,2,3,3,4,5,7,8,77,88,99>
----------------------------------
转换数组 把每个元素转变为其 平方
scala> val a = Array(1,2,3,4,5,6,7,8,9,10)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> val b = for(x<- a) yield x*x
b: Array[Int] = Array(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)
----------------------------------
ArrayBuffer 把每个元素 转为其平方
scala> import scala.collection.mutable._
import scala.collection.mutable._*
scala> c ++= Array(1,2,3,4,5,6)
res53: c.type = ArrayBuffer(1, 2, 3, 4, 5, 6)
scala> val d = for(x <- c ) yield x*x
d: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 4, 9, 16, 25, 36)
----------------------------------
使用 filter 过滤数组
scala> a
res56: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> a.filter( _ % 2 ==0)
res57: Array[Int] = Array(2, 4, 6, 8, 10)
scala> a.filter( _ ==4)
res58: Array[Int] = Array(4)
scala> a.filter( _ < 5)
res59: Array[Int] = Array(1, 2, 3, 4)
----------------------------------
使用map
scala> a.filter( _ % 2 ==0).map(_ * 2)
res60: Array[Int] = Array(4, 8, 12, 16, 20)
scala> a.filter( _ % 2 ==0).map(x=> x*x)
res62: Array[Int] = Array(4, 16, 36, 64, 100)
相关推荐
### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...
### Scala学习笔记关键知识点 #### 1. “均码”哲学与并发编程 - **“均码”哲学**: 指的是Scala设计时遵循的一种设计理念,即尽量保持语言的统一性和简洁性,使得不同的功能和特性能够以一种相似的方式进行处理。...
### Scala详细总结 #### 概述 Scala是一种静态类型的编程语言,其设计旨在结合面向对象编程和函数式编程的优点,并且能在Java虚拟机(JVM)上运行。这意味着Scala能够充分利用现有的Java类库,并且能够与Java代码无缝...
Utility_Scala 在常见的用例中,通过几个基本脚本介绍了Scala programming language和Spark Scala 。 请检查以获取更多信息。 Scala项目 我的Coursera Scala系列课程的... , -Scala列表与数组非常相似,这意味着列
### Scala的操作笔记 #### 一、课程目标与学习路径 本课程旨在通过三个阶段的目标来逐步深入学习Scala语言,最终能够灵活运用Scala进行Spark程序的开发,并具备阅读Spark内核源码的能力。 - **初级目标**:掌握...
以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...
以下是一些在学习Scala时可能会遇到的关键知识点: 1. **基本语法与类型系统**: - Scala是强类型语言,变量声明时必须指定类型,但可以使用类型推断简化编写。 - `val`用于声明不可变变量,`var`用于声明可变...
《Scala 急救手册笔记》 Scala是一种多范式的编程语言,它融合了面向对象和函数式编程的特点,被广泛应用于大数据处理、并发系统以及现代软件开发中。本笔记主要基于《Scala Impatient》这本书,旨在帮助读者快速...
本教程“spark-scala-tutorial-master”将涵盖这些基础以及更多进阶主题,例如 Spark SQL、Spark Streaming、MLlib(机器学习库)和 GraphX。通过实践,你将掌握如何在 Scala 中有效地使用 Spark 进行大数据处理,为...
### Spark学习笔记知识点详解 #### 一、Scala基础概述 **1.1 什么是Scala** Scala是一种现代化的、多范式的编程语言,旨在融合面向对象编程与函数式编程的优势。它运行于Java平台上,能够充分利用Java虚拟机(JVM)...
在学习的过程中,读者可以方便地在纸上做笔记,加深对Scala语言特性的理解。 总的来说,Scala中文经典教程是一份非常易于上手的入门资料,它简洁明了地介绍了Scala的面向对象特性,同时又通过实际代码示例,让Java...
综上所述,这些笔记内容涵盖了从后端开发到前端交互,再到服务器管理和HTTP通信的多个重要概念,是IT学习和工作中非常实用的基础知识。理解和掌握这些知识点将有助于提升开发效率和问题解决能力。
由于参考基因组是30亿个碱基对,因此Int.MaxValue的位图或整数数组将不起作用。 Bed和BigBed之类的格式是此类信息的标准传输方式,但是它们似乎并不能直接转换为内存中的表示形式,该表示形式简单易行,并且可以对...
本笔记主要关注Spark的基础知识,同时也涉及了Scala语言的学习,因为Spark主要是用Scala编写的。 首先,Scala是一种静态类型的多范式编程语言,它结合了面向对象和函数式编程的特点。在第一章中,我们学习了Scala的...
2. **数据结构**:使用 Scala 的数组、列表、集合等数据结构进行操作。 3. **面向对象编程**:演示 Scala 的继承、封装和多态特性。 4. **函数式编程**:利用高阶函数、尾递归和模式匹配等函数式编程特性。 5. **...
它支持多种编程语言,包括Python、R、Java、Scala、Julia等,但在这个特定的学习笔记中,只保留了Python接口相关的知识。这份笔记可能包含了作者在学习MXNet过程中对核心概念、API的注解以及对不感兴趣或非核心示例...
用于学习。 笔记 B-Tree 故意以笨拙的方式编码。 它使用在 Scala 中几乎没有位置的数组。 没有一种方法使用显式递归。 打字是明确的,但同样是故意粗暴的。 不花精力在提高效率上。 做出这些决定是因为代码旨在清晰...
MXNet 是一个轻巧、便携、灵活的分布式/移动深度学习框架,支持 Python, R, Julia, Scala, Go, Javascript 等语言。 Theano 是一个 Python 库,用来定义、优化和模拟数学表达式计算,用于高效的解决多维数组的计算...
SparkMLlib学习笔记 SparkMLlib是 Apache Spark 机器学习库,提供了一个统一的 API,用于机器学习任务的开发。SparkMLlib 提供了多种数据类型,包括 Vector、LabeledPoint 和 Matrix 等。这些数据类型是机器学习...