Scala数组常用方法

  • Post author:
  • Post category:其他




先定义一个数组

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)   //遍历打印



版权声明:本文为qq_34429725原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。