package com import scala.collection.mutable.ArrayBuffer /** * Created by Administrator on 2019/4/8. */ object TestMap { def main(args: Array[String]) { //**定长数组和变长数组************************************************* //数组常用方法 val arr = Array(1, 2, 3, 4, 5); val a1 = arr.map(_ * 10) val a2 = arr.filter(_ % 2 != 0) println(a2.toBuffer) //排序 val arr1 = Array(1, 4, 8, 3, 2, 6, 9, 5) //升序 println(arr1.sorted.toBuffer) //降序 println(arr1.sorted.reverse.toBuffer) //升序 println(arr1.sortWith((x, y) => x < y).toBuffer) //降序 println(arr1.sortWith((x, y) => x > y).toBuffer) //注意:如果new,相当于调用了数组的apply方法,直接为数组赋值 //初始化一个长度为1的定长数组 val arr2 = Array[Int](10) println(arr2.toBuffer) //定义一个长度为3的定长数组 val arr3 = Array("hadoop", "storm", "spark") //使用()来访问元素 println(arr3(0)) //变长数组(数组缓冲) //如果想使用数组缓冲,需要导入scala.collection.mutable.ArrayBuffer包 var ab = ArrayBuffer[Int]() //向数组缓冲的尾部追加一个元素 //+=尾部追加元素 ab += 1 //追加多个元素 ab +=(2, 3, 4, 5) //追加一个数组++= ab ++= Array(6, 7) //追加一个数组缓冲 ab ++= ArrayBuffer(8, 9) //打印数组缓冲ab println(ab) //在数组某个位置插入元素用insert ab.insert(0, -1, 0) //在首位插入-1,0两个元素 println(ab) //删除数组某个位置的元素用remove ab.remove(8, 2) //从第9位开始删除两个元素 println(ab) //**遍历数组************************************** //初始化一个数组 val arr4 = Array(1, 2, 3, 4, 5, 6, 7, 8) //增强for循环 for (i <- arr4) println("---" + i) //好用的until会生成一个Range //reverse是将前面生成的Range反转 for (i <- (0 until arr4.length).reverse) println(arr4(i)) //**数组转换************************************** //yield关键字将原始的数组进行转换会产生一个新的数组,原始的数组不变 val arr5 = for (e <- arr4) yield e * 2 println(arr5.toBuffer) val arr6 = arr4.map(_ * 3) println(arr6.toBuffer) //数组常用算法 println(arr5.sum) println(arr5.max) println(arr5.sorted.toBuffer) } }