Scala中数组的创建及实例化

Scala创建以及实例化的方式:

//创建一个长度为3的字符串数组,并逐个赋值,然后打印输出结果
val greetStrings = new Array[String](3)
greetStrings(0)="Hello"
greetStrings(1)=","
greetStrings(2)="world\n"
for(i <- 0 to 2){
	print(greetStrings(i))
}

注意:Scala中访问数组中某个元素使用的是(),例如greetStrings(0),而不是像java中使用的是[]访问。

同时,实例化数组还可以使用以下方式

val numNames = Array("zero","one","two")
numNames.foreach(numName =>println(numName))
val numNames2 = Array.apply("zero","one","two","four")
numNames2.foreach(numName2 => println(numName2))

Scala数组是一个所有对象都共享相同类型的可变序列。比方说Array[String]仅包含String。尽管实例化之后你无法改变Array的长度,它的元素值却是可变的。因此,Array是可变的对象。

说到共享相同类型的不可变对象序列,Scala的List类才是。和数组一样,List[String]包含的仅仅是String。Scala的List,scala.List,不同于Java的java.util.List,总是不可变的(而Java的List可变)因为List是不可变的,他们表现得有些像Java的String:当你在一个List上调用方法时,似乎这个名字指代的List看上去被改变了,而实际上它只是用新的值创建了一个List并返回。

List有个叫“:::”的方法实现叠加功能。List最常用的操作符是发音为“cons”的‘::’。Cons把一个新元素组合到已有List的最前端,然后返回结果List

例如:

val onetwo = List(1,2)
val threefour = List(3,4)
val onetofour =  onetwo:::threefour
println(onetofour)
val zerototwo = 0::onetwo
println(zerototwo)

tuple。与列表一样,元组也是不可变的,但与列表不同,元组可以包含不同类型的元素。而列表应该是List[Int]或List[String]的样子,元组可以同时拥有Int和String。

一旦你已经实例化了一个元组,你可以用点号,下划线和一个基于1的元素索引访问它。

val tuple = (12,"hello,world",'c',23.4)
println(tuple._1)
println(tuple._2)
println(tuple._3)
println(tuple._4)
时间: 2024-10-20 18:53:13

Scala中数组的创建及实例化的相关文章

JS中数组的创建方法

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /** * * js数组可以存储任意类型的数据 类似于java中的List<Object> * 声明数组 * 第一种 通过Array对象

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

matlab中数组创建方法

创建数组可以使用 分号 :  逗号, 空格 数组同行用 逗号,或空格分割 不同行元素用 分号: 1 clc; 2 a = [1 2 3 4 5]; 3 b1 = a(3);%第3个元素 4 b2 = a(2:4)%第2/3/4个元素 5 b3 = a(3:end)%第3到最后 6 b4 = a(3:-1:1)%逆序 第 3/2/1元素 一维数组的创建: 1. 用 :冒号 格式:N1:step:N2  第一个元素N1,最后一个元素N2,步长step(step>0,递增或step<0,递减) 2.

Scala学习——数组/映射/元组

数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初始值的数组,无需new关键字 Scala声明数组时,需要带有Array类名,且使用 () 来指明长度或提供初始值序列. 在JVM中,Scala的Array以Java数组的方式实现.如arr在JVM中的类型对应java.lang.String[],charArr对应char[]. 2.变长数组 ArrayBuffer,全称scala.col

Scala 中的函数式编程基础(三)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 3. Data and Abstraction 3.1 Class Hierarchies 这一集字幕不同步-,-,听得有点费力! 类的概念和其他语言里面很相似,基类,子类,父类啥的叫法差不多.在 Scala 中,所有用户自定义的类都是另外一个类的子类,如果没有显式给定父类,java 里面默认继承 java.

Scala深入浅出实战经典《第87讲:Scala中使用For表达式做查询》笔记

如知其非义,斯速已矣! 第87讲:Scala中使用For表达式做查询 Goal: For表达式做查询 Gains: for循环的应用 自定义一种类型,根据这种类型创建了一个List数组 针对数组中的内容,利用for循环可以进行相关的查询 More: 使用for循环来做查询~ ------------------------------------------------------------------------------------ 信息来源于 DT大数据梦工厂微信公众账号:DT_Spa

Java/C++中数组的区别

1. 数组名区别 -------------------------------------- 1. java中不用说,本着一切皆对象的原则,所以java中的数组也是对象.那么数组类是哪个,当然不是java.util.Arrays.详见Java数组方法的思考 2. 而在c++中数组名其实是一种数据结构,有人会说不是指针吗,关于这一点见(C++中数组名其实是一种数据结构). 从上面两点中我们可以看出java数组名是对象,而c++数组名是数据结构.那么有人又会问对象和数据结构又有什么区别呢?详见数据

scala中常用但不常见(其他语言)的符号含义

本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code. 随着我对Scala学习的深入,我会不断增加该篇博文的内容,下面介绍Scala中的符号: :::三个冒号运算符:表示list的连接操作 val one = List(1,2,3) val two = List(4,5,6) val three = one:::two 输出结果为:three: List[Int] = List(1, 2, 3, 4, 5, 6) :: 两个冒号运算符:表示普通元素与list的连接操

Scala学习回顾(五)---- scala中的apply

注:本文学习源自:DT大数据梦工厂(微信公众号:DT_Spark) 在Scala中,我们通常都会使用类似函数调用的语法.举例来说,如果s是一个字符串,那么s(i)就是该字符串的第i个字符.(而在java中,你会这样写:s.charAt(i).)在IDEA中运行如下代码: println("Hello(4)")//将打印出'o' 你可以把这种用法当做是()操作符的重载形式,它背后的实现原理是一个名为apply的方法.举例来说,在StringOps类的文档中,你会发现这样一个方法: def