Scala的集合框架
1.元组 定义方式:val tp=("nana‘,1,1.1) 特点:集合中的数据可以是不同类型的 ????????? 最多只能放22个元素 取值:通过角标取值,这里的角标是从1开始的,元组名称._角标?? tp._1?? ("nana") ?????????? 当出现数组长度不相同时,报错 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,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() 方法来获取元组中存在的元素或者使用其默认的值? ? 5.Set set实际上是Map集合上的key,set存储的元素是唯一的,不重复的,会自动去除掉重复的 val set=Set(1,1)?? ? 6.集合上常用的方法 map?: 一对一映射 ?也就是对原来的集合中的每一个元素,执行某一项操作(该操作取决于函数的内容) (自己的理解:万能转化器(自己想要什么格式,就转成什么格式) 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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |