• Scala的集合框架


    1.元组

    定义方式:val tp=("nana',1,1.1)

    特点:集合中的数据可以是不同类型的

              最多只能放22个元素

    取值:通过角标取值,这里的角标是从1开始的,元组名称._角标   tp._1   ("nana")

               当出现数组长度不相同时,报错

    对偶元组:val tp=("nana",1) 两个元素

    拉链操作: zip

    当出现数组长度不想同时,一一匹配,无则不匹配

    2.数组

    数组分为:不可变数组:长度不变,内容可变Array

    可变数组:长度内容都可以改变 ArrayBuffer

    不可变数组

    定义:

    val array1=Array(1,3,5,7)

    val array2=new Array[Int](5)  初始值都为0,需要指定长度

    取值:通过角标,从1开始  array1(1)  []指泛型

    赋值:

    array1(0)=333  赋值是从0开始的

    可变数组

    导包jar   import scala.collection.mutable.ArrayBuffer

    定义

    val array3=ArrayBuffer(11,22,33,44)

    val array4=new ArrayBuffer[Int](5)

    取值、赋值和不可变数组一样

    可变数组的运算符号

    +=  添加单个值  array3+=2222

    ++= 添加数组     array3++=array4

    -=  删除单个值   array3-=44

    --= 删除多个值   array3--=array1

    数组的常用方法

    数组的反转:reverse     array3.reverse

    数组的截取:slice(from,until)    array3.slice(1,2)  左闭右开

    数组的去重:distinct   array3.distinct

    3.List

    不可变的 List   长度,内容都是不可以改变的

    可变的 ListBuffer 长度,内容都是可变的

    创建不可变的List

    val list1=List[int](1,2,44,55)

    构建List的另一种方法  ::Nil

    8::9::44::Nil    Nil空列表

    ::该方法被称为cons,以为构造,向队列的头部追加数据,创建新的列表,用法为x::list,其中x为加入头部的元素,无论x是列表与否,他都只将成为新生成列表的第一个元素

    添加元素

    :+在尾部追加元素  list1 :+1

    +:在头部追加元素(:要朝向集合) 1+:list1

    ++ 该方法用于连接两个集合 list1++list2

    :::只能用于链接两个List类型的集合

    对于不可变类型集合的操作,生成了一个新的集合,元集合并没有被改变

    可变的List

    导包jar  import scala.collection.mutable.ListBuffer

    val list1=ListBuffer(11,22,34,55)

    val list2=new ListBuffer[int]() 不设置数组大小

    += ++= -= --=

    List的集合由两部分组成

    hade  list1.head   List集合的第一个元素

    tail     list1.tail       List集合除去第一个元素的其他元素

    List集合的转换

    toList   array3.toList

    toArray  list3.toAreray

    4.Map

    定义

    (1)val map1=Map(("nana",12),("jingjing",23))

    (2)  val  map2=Map("nana"->1,"jingjing"->2)

    循环

    map1.keys.foreach{

    i =>print("key=“+i)

    printIn("value="+map1(i))

    map的几种方法

    contains(包含) Boolean  判断是否存在key

    map1("nana")  返回value     map1("nan") 报错

    map1.get("nana")  返回Opint[Int]=Some(12)     Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。

    map1.getOrElse("nana",-1)    Int=12 你可以使用 getOrElse() 方法来获取元组中存在的元素或者使用其默认的值,如果不存在的话则返回-1(可以自己定义)

    5.Set

    set实际上是Map集合上的key,set存储的元素是唯一的,不重复的,会自动去除掉重复的

    val set=Set(1,2,3,1)  

    6.集合上常用的方法

    map : 一对一映射  也就是对原来的集合中的每一个元素,执行某一项操作(该操作取决于函数的内容)

    (自己的理解:万能转化器(自己想要什么格式,就转成什么格式)  array3.map(_*2)   array3.map(tp=>tp*2)

    filter 过滤出满足条件的元素  array3.filter(_>22)  array3.filter(tp=>tp>33&&tp<543)

    filterNot 过滤出不满足条件的

    flatten 压平

    Unit 类型,没有返回值的类型(返回值为空)

    sorted 排序

    7.集合框架中常用方法

    交集 array1.instersect(array3)

    差集 array1.diff(array3)

    并集 array1.union(array3)

  • 相关阅读:
    Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
    echarts统计图踩坑合集
    echarts如何设置背景图的颜色
    小程序获取的用户头像怎么做成圆形
    vue踩坑记-在项目中安装依赖模块npm install报错
    vue踩坑记- Cannot find module 'wrappy'
    编程微刊第七期文章汇总(2018.7)
    从列表中或数组中随机抽取固定数量的元素组成新的数组或列表
    wangEditor
    手把手教你用vue-cli构建一个简单的路由应用
  • 原文地址:https://www.cnblogs.com/wangshuang123/p/11013278.html
Copyright © 2020-2023  润新知