Scala数组常用方法

先定义一个数组

val arr = Array(1,2,3,4,5,6)
//filter一个过滤器,根据传入的条件将数据过滤出来
val arr1: Array[Int] = arr.filter(x => x%2 == 0)

//map把数组中每一个元素都取出来的到一个全新数组
val arr2: Array[Int] = arr.map(x => x)

//foreach数组中的元素取出来并打印 (无返回值)
arr.foreach(x => println(x))
//定义数组
var arr:Array[Int] = new Array[Int](3)
//简化
var arr1 = new Array[Int](3)
val arr2 = Array(1,2,3)
//操作当前数组,下标
arr2(0) = 100

翻转数组

println(arr.reverse.toBuffer) //需转换成StringBuffer后输出,不然输出的回事地址

删除数组元素
这时候操作的是可变数组

val  arr = new ArrayBuffer[Int](4)

删除数组使用remove(), 这个方法有两种用法

arr.remove(2)  //删除arr数组下标为2的元素
arr.remove(2,3)   //从下标2开始,删除3个元素

数组的排序
排序有三种方法

  1. sorted
    sorted默认为升序排序, 如果想要降序需要进行反转
val sortedArray : Array[Int] = arr.sorted     //升序
val sortedArray : Array[Int] = arr.sorted.reverse   //降序

  1. sortWith需要出如一个参数, 参数是一个函数, 这个函数需要有两个参数进行比较, 返回的是一个布尔类型的值
//1. 
val f1 = (x : Int , y: Int) => x < y
val sortwithArray : ArrayBuffer[Int] = arr.sortWith(f1)
//2. 简化一下
val sortwithArray = arr.sortWith((x,y) => x < y)
//3. 最简化
val sortwithArray = arr.sortWith(_ < _)
  1. sortBy
    在这里插入图片描述
    sortBy也是需要出入参数的
    f:(Int)=>B代表传入一个参数,这个参数类型是Int类型,这个函数的返回值是B类型的
    后面的implicit ord:Ordering[B]这个是排序的规则
val sortBy = arr.sortBy(x => x)   //升序
val sortBy = arr.sortBy(x => -x)   //降序

数组插入数据
插入数据, 第一个参数是开始的位置, 插入多少个元素

arr.insert(0,-1,-2,-3)   // 将-1,-2,-3插入开头

数据清洗
县定义一个数组

val words = Array("hello tom hello xiaoming hello jerry", "hello Hatano")

想办法把数组的每一个单词单独拿出来
使用map()和split()

// map方法这个方法可以遍历数组中元素,通过自己定义的函数可以决定元素如何处理
//取出数组中的元素将元素拆分得到了一个全新的数这个数组中存储的元素时一个数组
val wdArr = words.map(wd => wd.split(" "))

这时候数组wdArr里的结构为:
Array[Array[String]] 一个数组里存着数组
所以使用flatMap

val flattenArray = wdArr.flatMap

将上面两个方法合在一起:

val array = words.flatMap(wd => wd.split(" "))

array.foreach(println)   //遍历打印
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值