Day60_Scala(三)

本文介绍了Scala的集合入门,包括不可变数组Array、可变数组ArrayBuffer和Zip拉链操作,以及函数式编程的基础,如函数的定义、实战和高阶函数的概念。讲解了元组的创建、操作及在集合中的应用。
摘要由CSDN通过智能技术生成

第三讲 Scala集合入门和函数式编程(上)

一、Scala集合入门

​    scala的集合分为了两类,一类是可变的集合(集合可以执行增删改查操作),另一类是不可变集合(集合元素在初始化的时候确定,后续只能进行查,有的可以进行修改,有的不可以)。二者可能名称一样,但是在不同的包下面,对应的包为:scala.collection.mutable和scala.collection.immutable。

​    scala默认使用的集合,或者默认导入的包是immutable。

​    说明:这里提到的可变或者不可变,指的是容器内部的内容,以及容器的长度可变或者不可变。

(一)、Scala数组

1、不可变数组Array

Array可以理解为java中的数组。

(1)数组的定义

java中数组的定义:

   new int[5];

    int[] aa = {1, 2, 3};

    int[] bb = new int[]{1, 2, 3, 4}

scala中数组的定义:

    val array = new Array[类型(比如Int/Long)](5) --->定义了一个长度为5的Int/Long类型的数组,每一个元素都有默认值:0。

    val array = Array(1, 2, 3, 4, 5) -->定义类一个初始化内容为1, 2, 3, 4, 5的Int类型的数组。

   其中第二种的定义方式,没有new关键,其实是class Array的伴生对象的构建方式。



(2)获取数组中的元素

数组名(index)

比如:

val ele = array(3)

(3)元素的遍历

for(ele <- 数组) {

    。。。   

}

for(i <- array) {

    println(i)

}

(4)数组的长度

array.length

array.size

(5)数组判断

判断元素是否包含

array.contains(ele)

eg:

println("判断元素-3时候在数组中存在:" + array.contains(-2))

(6)数组元素的拼接输出

使用数组的方法:mkString

//拼接数组元素,没有分隔符

println("数组元素:" + array.mkString)

//拼接数组元素,使用分隔符", "

println("数组元素:" + array.mkString(", "))

//拼接数组元素,使用分隔符", ",起始字符为[,终止字符为]

println("数组元素:" + array.mkString("[", ", ", "]"))

=========================================

数组元素:123-35

数组元素:1, 2, 3, -3, 5

数组元素:[1, 2, 3, -3, 5]

2、可变数组ArrayBuffer

ArrayBuffer就可以理解为java中的ArrayList。

(1)ArrayBuffer的定义

//定义一个Int类型的可变数组

val arrayBuffer = new ArrayBuffer[Int]()

//定义一个String类型的可变数组

val arrayBuffer = ArrayBuffer[String]()

//定义一个String类型的可变数组,小括号内是元素

val arrayBuffer = ArrayBuffer[String](“hello”)

(2)crud

//增

println("----------arraybuffer的增的操作--------------")

ab.append(1)

println("ab.append(1): " + ab)

ab.append(2, 3, 4)

println("ab.append(2, 3, 4): " + ab)

//insert(index, ele*)在指定的索引位置上插入一个或多个元素

ab.insert(2, -3, -2)

println("ab.insert(2, -3, -2): " + ab)

//查

//获取指定索引位置的元素

val ele = ab(5)

println("ab(5): " + ele)

//数组长度

println("可变数组ab的长度:" + ab.size)

//改

ab(5) = -5

println("修改之后的数组为:" + ab)

//删

ab.remove(3)//删除指定索引位置上的元素

println("ab.remove(3): " + ab)

ab.remove(2, 2)//remove(index, count)从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值