package Scala
object Array1 {
def main(args: Array[String]): Unit = {
// 打印1到100
for( a <- 1.to(100)){
print(a)
}
// 打印1到99 until:函数就是1到99
for (a <- 0.until(100)){
print(a)
}
// 打印1到99的偶数
for (a <- 0.until(100) if a % 2 ==0){
print(a)
}
//数组
// 第一种字符串数组遍历输出
val arr :Array[String]=Array[String]("1,2,3,4") 传参第一种
val arr =Array[String]("1,2,3,4") 传参第二种
for (a <- arr){
print(a)
}
// 第二种字符串数组遍历输出
val arr = new Array[String](4)
arr(0)= "1"
arr(1)= "2"
arr(2)= "3"
arr(3)= "4"
for (a <- arr){
print(a)
}
//定义整数数组遍历输出
val arr = new Array[Int](4)
arr(0)= 1
arr(1)= 2
arr(2)= 3
arr(3)= 4
for (a <- arr){
print(a)
}
// filter 过滤数组元素
// filter 函数的参数是一个函数
// 参数函数是一个参数是int类型,返回值是布尔值的函数
// _ <= 2 也是一种逻辑功能
//
val arr02 =arr.filter(_ <=2)
val arr03 =arr.filter(x =>{x <= 2})//02的第二种方式
// 这个 map 函数的输入输出是一对一的映射关系
// y = x 数学函数
// y = x + 1 数学函数
val arr04 =arr.map(_ +1)//让数组中的各个元素加1,_代表*
for (i <- arr04){
print(i)
}
// 二维数组
val arr05 = Array(Array(4,1,2),Array(1,2))
// flatMap flat 扁平的;压扁
// 把二维数组压扁成一个一维数组
// 这个 flaMap 函数的输入输出是一对多的映射关系
// arr06 = {{1,2},{1,2}}
// arr06 = {1,2,1,2}
val arr06 = arr05.flatMap(x=>{
x
})
// lenght打印的是数组的长度
print(arr06.length)
for (i <-arr06){
print(i)
}
// arr06 = {4,1,2,1,2}
// 数组元素累加
print(arr06.sum)
// 取出数组的第一个元素
print(arr06.head)
// 取出数组的最后一个元素
print(arr06.last)
// 取出元素的最大最小值
println(arr06.max)
println(arr06.min)
// 将数组元素拼接成一个以逗号分隔的字符串
println(arr06.mkString(","))
// 循环遍历(依次)数组元素
arr06.foreach(println(_))
// reduce 数组元素汇聚操作(±*/)
println(arr06.reduce(_ + _))
// (x,y) => {x + y} 是一个参数函数
// (x,y) 是函数的2个参数
// {x + y} 花括号里面是函数体,是函数代码功能
// 数组元素自定义汇聚操作
// arr06 = {4,1,2,1,2}
// reduce 数组元素汇聚操作(±*/)
println(arr06.reduce((x,y) => {x / y})) 输出的结果就是1
//
// 数组元素逆序
// arr06 = {4,1,2,1,2}
arr06.reverse.foreach(print(_))
//
//
// arr06 = {4,1,2,1,2}
// 数组元素去重
arr06.distinct.foreach(print(_))
//
// 求2个数组元素并集操作
arr06 = {4,1,2,1,2}
arr07 = {4}
arr08 = {4,1,2,1,2,4}
val arr07 = Array(4)
val arr08 = arr06.union(arr07).foreach(print(_))
arr06.diff(arr07).foreach(print(_))
//
// diff函数求2个数组的差集
arr06 = {4,1,2,1,2}
arr07 = {4}
arr08 = {1,2,1,2}
val arr07 = Array(4)
arr06.diff(arr07).foreach(print(_))
// arr06.sortBy()
// sortBy 对数组元素进行排序
// sortWith 对数组元素进行排序
print(arr06.sorted)//升序
print(arr06.sorted.reverse)//降序
arr06.sortWith(_ < _).foreach(print(_))//升序
arr06.sortWith(_ > _).foreach(print(_))//降序
}
}