Scala中定义数组、增强for遍历scala数组、unitl生成脚标遍历scala数组、数组转换、数组常用算法 05

Scala 专栏收录该内容
28 篇文章 0 订阅

1 定长数组和变长数组

  • 定长数组定义格式:
    val arr = new Array[T](数组长度)

  • 变长数组定义格式:
    val arr = ArrayBuffer[T]()
    注意需要导包:import scala.collection.mutable.ArrayBuffer

  • 代码如下

import scala.collection.mutable.ArrayBuffer
object ArrayDemo{
	def main(args:Array[String]){
		//1. 初始化一个长度为8点定长数组,其所有元素均为0
		//如果是new,相当与调用数组的apply方法,直接为数组赋值
		val arr1 = new Array[Int](8)
		//直接打印定长数组,内容为数组的hashcode值
		println(arr1)
		//将数组转换成数组缓冲,就可以看到原数组中的内容了
		//toBuffer会将数组转换成变长数组缓冲
		println(arr1.toBuffer)
	
		//2. 第二个定义数组的方法,直接赋值
		val arr2 = Array("hadoop","storm","spark")
		//使用()来访问元素,打印某一个元素
		println(arr2(2))
	
		//如下是变长数组
		val ab = ArrayBuffer[Int]()
		//向数组缓冲的尾部追加一个元素,+=代表尾部追加一个元素
		ab += 1
		//向尾部追加多个元素
		ab += (2,3,4,5)
		//追加一个数组 ++=
		ab ++= Array(6,7)
		//追加一个数组缓冲
		ab ++= ArrayBuffer(8,9)

		//在数组某个位置插入元素用insert,从下标插入,
		//从下标0位置开始插入-1,0
		ab.insert(0,-1,0)

		//删除数组某个位置的元素用remove,按照下标删除
		ab.remove(0)
		println(ab)
		
	}
}

2. 增强for遍历Scala中的数组

  • 增强for循环遍历
  • 使用unitl生成脚标, 0 unitl 10 包含0不包含10
    在这里插入图片描述
  • 代码
object ForArrayDemo{
	def main(args:Array[String]){
		//1. 使用增强for循环,遍历数组
		val arr = Array(1,2,3,4,5,6,7,8,9)
		for(i <- arr)
			println(i)
		
		//2. 使用until,这样会生成一个Range
		//reverse方法会将调用它的Range反转
		for(i <- (0 until arr.length).reverse)
			println(arr(i))		
	}
}

3. 数组转换 yield

  • yield关键字能够将原始数组进行转换,会生成一个新的数组,原始数组不变
  • 代码
object ArrayYieldDemo{
	def main(args:Array[String]){
		//1. 定义一个数组
		val arr = Array(1,2,3,4,5,6,7,8,9)
		//2. 将偶数取出乘以10以后再生成一个新的数组
		val res = for(e <- arr if e % 2 == 0) yield e * 10
		println(res.toBuffer)
		
		//3. 更高级的写法,用着更爽
		//filter是过滤,接收一个返回值为boolean的函数
		//map相当于将数组中年的每一个元素取出,应用传进去的函数
		val r = arr.filter(_ % 2 == 0).map(_ * 10)
		println(t.toBuffer)
	}
}

4. 数组中常用的算法

在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值