第1节 Scala基础语法:9、10、数组
1. 定义数组时,没有new和有new是有区别的:
scala> val arr3 = Array[Int](2) 此时,arr3中仅包含1个元素2
arr3: Array[Int] = Array(2)
scala> val arr6 =new Array[Int](2) 如果new,相当于调用了数组的apply方法,直接为数组赋值
arr6: Array[Int] = Array(0, 0) 此时,指定该数组类型为Int,则arr6中包含2个元素0,0
scala> arr7
res519: Array[Nothing] = Array(null, null, null) 此时,未指定数组类型,则其包含3个元素,均为null
2. 数组转换:
scala> val f1=(x:Int) => x%2==0 f1: Int => Boolean = <function1>
scala> arr8.filter(f1) res96: Array[Int] = Array(2, 4, 6, 8)
scala> arr8.filter((x:Int) => x%2==0) res97: Array[Int] = Array(2, 4, 6, 8)
scala> arr8.filter(x => x%2==0) res99: Array[Int] = Array(2, 4, 6, 8)
scala> arr8.filter(_ %2==0) res100: Array[Int] = Array(2, 4, 6, 8)
scala> val f2=(x:Int) => x*10 f2: Int => Int = <function1>
scala> arr8.filter(_ %2==0).map(f2) res104: Array[Int] = Array(2, 4, 6, 8)
scala> arr8.filter(_ %2==0).map(_ * 10) res106: Array[Int] = Array(20, 40, 60, 80)
======================================================
5. 数组、映射、元组、集合
5.1. 数组
5.1.1. 定长数组和变长数组
(1)定长数组定义格式:
val arr=new Array[T](数组长度)
val arr=Array(1,2,3,4,5)
(2)变长数组定义格式:
valarr = ArrayBuffer[T]()
注意需要导包:import scala.collection.mutable.ArrayBuffer
package cn.itcast.scala ab -=3 ab --=Array(1,2) |
5.1.2. 遍历数组
1.增强for循环
2.好用的until会生成脚标,0 until 10 包含0不包含10
package cn.itcast.scala |
5.1.3. 数组转换
yield关键字将原始的数组进行转换会产生一个新的数组,原始的数组不变
package cn.itcast.scala println(r.toBuffer) } |
5.1.4. 数组常用算法
在Scala中,数组上的某些方法对数组进行相应的操作非常方便!
最新文章
- customErrors与错误页面
- test homework ~ coverage about method printPrimes
- sharepoint2010升级到sharepoint2013的升级步骤和过程
- ETL工具与脚本实现之间的对比
- TADOTable 用过滤事件 后 记录数据和 记录的内容
- Linux下如何进行FTP设置
- Intent中的重要属性详解
- Js模板引擎mustache
- 怎查看linux系统的位数
- C# Http以文件的形式上传文件
- python之smtplib发邮件
- IntentService源码
- shell脚本-正则、grep、sed、awk
- postgresql 空间函数 随笔
- [转]php中 curl模拟post发送json并接收json
- java配置slf4j日志系统
- iframs刷新的两种方法
- Xshell 命令后台执行
- 记一次有趣的 Netty 源码问题
- smarty内置函数、自定义函数
热门文章
- java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/com.alibaba.druid.filter.Filter].
- java 数据类型优先级
- 吴裕雄 人工智能 java、javascript、HTML5、python、oracle ——智能医疗系统WEB端智能分诊代码简洁版实现
- ubuntu的apt
- Shiro入门学习之shi.ini实现授权(三)
- web渗透(转)
- 匹配 $gdinfo 中的数字
- 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用激活函数
- 【原】rsync使用
- C++11特性中的stoi、stod