变量声明
var myVar : String = "Foo"
val ch : List[String] = Nil
集合操作
//最原始创建数组array1的方式,这个数组包含5个Int类型元素,5个元素初始化为0
val array1 = new Array[Int](5)
//创建一个数组array2,用(1 2 3 4 5)5个Int型数据进行初始化
val array2 = Array[Int](1,2,3,4,5)
//可以省略[Int]这个泛型类型,是因为Scala有类型推导能力,已经传进了当前数组的值,所以可以根据值来推导出类型;
val array3 = Array(1,2,3,4,5)
//以下创建数组方法与val array2 = Array(1,2,3,4,5)等价
val array4 = Array.apply(1,2,3,4,5)
//虽然array4是用val定义的,但数组元素的值是可以被再次赋值,第一个元素的值被修改为10
array4(4) = 10
//通过for循环打印array4所有元素
for(i <- array4) println(i)
//定义一个有3个字符串类型Array数组names
var names = Array("scala", "python", "r")
for(i <- names) println(i)
//导入包scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
//定义一个Int类型的ArrayBuffer
val array5 = new ArrayBuffer[Int]()
//向数组arrayBuffer中追加一个元素
array5 += 1
array5 += 2
//将序列(4 5 6 7 8 9 10)追加到数组arrayBuffer中
array5 += (4 5 6 7 8 9 10)
//将一个Array数组追加到arrayBuffer中
array5 ++= array(1,2,3) // 两个加号??
//通过insert方法在arrayBuffer数组中length-1的位置插入指定元素,以下是插入两个元素100,1000
array5.insert( array5.length - 1, 100, 100)
//通过remove方法删除arrayBuffer中指定位置的元素
array5.remove(array5.length - 2)
//当需要多线程并发操作的时候,把ArrayBuffer转换成为Array就非常重要;
array5.toArray
//以step等于2的方式遍历array5数组元素
for(i <- array5)println(i)
for(i <- 0 until array5.length )println(array5(i))
for(i <- 0 until (array5.length, 2 )println(array5(i))
//以反序方式从数组末尾到数组头遍历元素
for(i <- (0 until array5.length ).reverse ) println(array5(i))
//数组求和
array5.sum
//数组求最大数
array5.max
//打印array5 Max = 5
//array6的值:1 2 3 4 5 6 7 8 9 10 1 2 100 3
val array6 = array5.toArray
//对数组进行升序排序
scala.util.Sorting.quickSort(array6)
for(i <- array6)println(i)
println(array6.mkString(","))
//"yield"语法在已经有的数组的基础上通过作用于每个元素来生成新的元素构成新的数组,这里对每一个元素都加1
val arrayAddone = for(i <- array6) yield i+ 1
print(arrayAddone.mkString(","))
//提取数组array7中的偶数然后用"yield"语法对这些偶数进行加1操作,然后得到新的数组赋给array8
val array7 = for(i <- array6 if i%2== 0 ) yield i+ 1
print(array7.mkString(","))
//通过filter提取偶数
print(array6.filter{i => i%2 == 0}.mkString(","))
//同样是通过filter提取偶数,但采用的占位符方式
print(array6.filter{_%2 == 0}.mkString(","))
//采用占位符方式提取数组偶数并进行乘10操作
print(array6.filter{_%2 == 0}.map{x => x*10}.mkString(","))
print(array6.filter{_%2 == 0}.map{_*10}.mkString(","))
//+: 在列表的头部添加一个元素
//:+ 在列表的尾部添加一个元素
//:: 在列表的头部添加一个元素
//元素与集合相连是用::,而集合与集合相与是用:::
这篇博客详细介绍了Scala中的变量声明,如`var`和`val`,以及各种集合操作,包括数组和ArrayBuffer的创建、修改、遍历、求和、排序等。示例展示了如何使用Scala的类型推导、for循环、过滤和映射操作,以及并发场景下ArrayBuffer转换为Array的重要性。
2033

被折叠的 条评论
为什么被折叠?



