scala数组基础语法
发布时间:2020-12-16 09:41:14 所属栏目:安全 来源:网络整理
导读:Day3 数组: 存放一系列元素的容器 1.分类: 不可变数组 定长数组 Array 可变数组 缓冲数组 数组缓存 ArrayBuffer (集合,Seq) ArrayBuffer位于scala.collection.mutable包下。 2.Array数组: 2.1定义方式: 1.通过类构建 eg: val arr=new Array[T](size); 2.通
Day3数组:存放一系列元素的容器 1.分类:不可变数组 定长数组 Array 可变数组 缓冲数组 数组缓存 ArrayBuffer (集合,Seq) ArrayBuffer位于scala.collection.mutable包下。 2.Array数组:2.1定义方式:1.通过类构建
2.通过对象构建(统一对象构建原则)eg:val arr2=Array("hello","scala","java"); val arr3=Array.apply(1,2,3,4); val set=Set(1,34,5) 2.2 取值arr(index) //本质上调用的arr.apply(index)这个方法 arr.take(num) arr.takeRight(num) arr.takeWhile(pf:T=>Boolean) 2.3 赋值arr(index)=值 arr.update(index,值) 2.4 遍历数组for(elem <- arr){...} for(index <- 0 until arr.length){...} arr.foreach(println) 2.5 获取数组的长度arr.length arr.size 3.ArrayBuffer数组缓冲:2.1定义方式1.通过类构建eg:import scala.collection.mutable.ArrayBuffer val arrBuffer=new ArrayBuffer[T](); 2.通过对象构建(统一对象构建原则)eg:val aeeBuffer=AeeayBuffer(1,3) 2.2添加元素+: ++ ++: +=: ++=: append appendAll insert insertAll 需要注意的是:1. 当方法名中有一个+号时,指的是添加 一个个元素,返回一个新的集合/数组 2. 当方法名中有两个+号时,指的是添加 一个集合/数组容器,返回一个新的集合/数组 3. 当方法名中出现=号时,指的是会修改原集合。(只有可变集合才有包含=的方法) 4. 当方法名中没有=号时,不会修改原集合/数组,一般只会返回一个新的集合/数组 2.3移除元素- -- -= --= remove(index) remove(index,count) drop(count) dropRight(count) dropWhile(pf:T=>Boolean) 2.4常见方法take takeRight takeWhile count 算数集合:sum product max min 排序:sorted //按照集合类型默认排序规则进行排序(默认生序) sortBy //按照自定义指定规则进行排序 sortWith//自定义生序还是降序排列 遍历输出:foreach 转换:map filter val result=for(elem <- arr if elem %2==0)yield elem*2 val newArr=arr.filter(_%2==0).map(_*2) val newArr= arr.filter( (x:Int) => {x%2==0} ).map( (x:Int) => { x*2 } ) 4.多维数组: 数组的数组val arr2=new Array[Array[Int]](size); arr2(0)=Array(1,4) arr2(1)=Array(2,4,6,8) val arr3=Array.ofDim[Double](3,5,4) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Angular 4.3 Observables:如何重试间隔和最大重试次数?
- 云计算第二阶段shell脚本
- 手动安装Selenium服务器以与来自古巴的量角器(AngularJS)配
- 如何将BASH变量插入到PERL正则表达式替换中?
- angularjs – 在所有$http异步调用完成后加载路径模板/控制
- VIM:一次执行两个操作
- 如何使用ScalaQuery只选择一个符合where子句的第一个或最后
- WebService体系之——JavaBean的传递
- 专家观察 | 张国华:“甲骨文开放云基础架构从建设到敏捷运
- [Angular] Expose Angular Component Logic Using State Re