scala集合中关于数组的知识点总结(添加元素,加和计算,最大最小值,排序)

集合

Scala中集合分为可变集合不可变集合

可变集合

可以对其中的元素进行修改、添加、移除

不可变集合

永远不会改变,但可以模拟添加、移除、或更新操作,虽然会返回一个新集合,但是元集合内容不会发生改变

数组

数组分为定长数组变长数组
区别就在于定长数组初始化之后不能对数组长度进行修改,而变长数组可以修改数组长度

一、定长数组

直接定义数组中的数据,让其自动判断数组的类型,有整数和小数时,则为double类型

package scalaP

object arr {
  def main(args: Array[String]): Unit = {
 val arr=Array(1,3,4)
    for (i <- arr){
      println(i)
    }
    }
}

运行结果:
在这里插入图片描述

先定义数组的长度,再给数组添加值

package scalaP

object arr {
  def main(args: Array[String]): Unit = {
    //先定义数组的长度,再给数组添加值
    val arr=new Array[Double](2)
    arr(0)=3.8
    arr(1)=6.8
    for ( i <- arr){
      println(i)
    }
}
}

运行结果:
在这里插入图片描述

筛选最值,排序

  1. Scala对数组提供的方法示例:
    .sum 加和
    .min 最小值
    .max 最大值
    .sorted 升序排列
    .sorted.reverse降序排列(原理:先将数组升序排列,在将排列后的数组倒序排列则为降序排列)
package scalaP

object arr {
  def main(args: Array[String]): Unit = {
    val arr = Array(10,0,60)
    //.sum求数组中所有元素的和
    val arrsum = arr.sum
    //.min求数组中最小的元素
    val arrmin= arr.min
    //.max求数组中最大的元素
    val arrmax= arr.max
    //sorted升序排列
    val arrSorted=arr.sorted
    //reverse降序排列(先将数组升序排列,在将排列后的数组倒序排列则为降序排列)
    val arrReverse=arr.sorted.reverse
    println("数组中元素的和是:"+arrsum)
    println("数组中最小的数是:"+arrmin)
    println("数组中最大的数是:"+arrmax)
	println("排升序结果:")
    for (i <- arrSorted){
      print(i+"\t")
    }
    println("")
    println("排降序结果:")
    for ( i<- arrReverse){
      print(i+"\t")
    }

  }
}

运行结果:
在这里插入图片描述

二、变长数组

变长类型数组中元素的添加,删除,合并以及固定位置的插入和移除等操作

  1. 添加(+=)

package scalaP

import scala.collection.mutable.ArrayBuffer

object cma {
  def main(args: Array[String]): Unit = {
    var arr = new ArrayBuffer[Int]()
    arr+=1
    arr+=2
    arr+=3
    println(arr)
  }
}

运行结果:

在这里插入图片描述

  1. 删除(-=)

object cma {
  def main(args: Array[String]): Unit = {
    var arr = new ArrayBuffer[Int]()
    arr+=1
    arr+=2
    arr+=3
    println(arr)
    arr-=2
    println(arr)
  }
}

结果对比

“-=”符号对变长数组中的元素进行删减,"arr-=3"代表删除值为3的元素,如果数组中有多个值为3的元素,那么从前往后删除第一个匹配的值

如下图所示:删除数组中是1的元素
在这里插入图片描述

  1. 合并(++=)【即追加】

 val a=ArrayBuffer(2,4,6)
    val b=ArrayBuffer(8,10)
    println(a++=b)

在这里插入图片描述

  1. 固定位置插入.insert(),可以在固定位置插入多个元素【.insert(0,4,5,6,2)】

package scalaP

import scala.collection.mutable.ArrayBuffer

object cma {
  def main(args: Array[String]): Unit = {
 val arr=ArrayBuffer[Int](1,5,6,7)
    arr.insert(0,2)
    println(arr)
    arr-=2
    println(arr)
    }
}

运行结果:
在这里插入图片描述

  1. 在固定位置移除元素.remove(2,4)可以移除多个

package scalaP
import scala.collection.mutable.ArrayBuffer
object cma {
  def main(args: Array[String]): Unit = {
   val arr=ArrayBuffer[Int](1,5,6,7)
    arr.insert(2,3)
    println(arr)
    arr.remove(1,2)
    println(arr)
      }
}

运行结果:
在这里插入图片描述

水平有限,若有错误请指正,改不改另说哦嘻嘻,逗你呢

  1. 列表有头部好和尾部的概念,可以使用head和tail的方法获取
  2. 列表返回的是列表第一个元素的值
  3. tail 返回的是除了第一个元素外的其他值构成的心列表,这体现出列表具有递归的链接表
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值