第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中,数组上的某些方法对数组进行相应的操作非常方便!

第1节 Scala基础语法:9、10、数组的更多相关文章
- 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数
4. Scala基础 4.1. 声明变量 package cn.itcast.scala object VariableDemo { def main(args: Array[Strin ...
- 第1节 Scala基础语法:scala中的方法源码分析
val list=List(1,2,3,4) list.reduce((x:Int,y:Int)=>x+y)--->list.reduceLeft((x:Int,y:Int)=>x+ ...
- 第1节 Scala基础语法:13、list集合的定义和操作;16、set集合;17、map集合
list.+:5 , list.::5: 在list集合头部添加单个元素5 : li1.:+(5):在list集合尾部添加单个元素5: li1++li2,li1:::li2:在li1集合尾部添加il2 ...
- 第1节 Scala基础语法:14、15、list集合练习
package cn.itcast.collect /** *作业题 */object ListTest { def main(args: Array[String]): Unit = { //创建一 ...
- 第1节 Scala基础语法:11、映射;12、元组
5.2. 映射 在Scala中,把哈希表这种数据结构叫做映射. 1.1.1. 构建映射 (1)构建映射格式 1.val map=Map(键 -> 值,键 -> 值....) 2. ...
- 第1节 Scala基础语法:3、环境;4、插件
1. Scala编译器安装 1.1. 安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 1.2. 安装Scala 1.2.1. Windows ...
- 第1节 Scala基础语法:1、2、概述,什么是scala
Scala编程 1. 课程目标 1.1. 目标1:熟练使用scala编写Spark程序 1.2. 目标2:动手编写一个简易版的Spark通信框架 1.3. 目标3:为阅读Spark内核源码 ...
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
随机推荐
- html 打印相关操作与实现
2020-02-19 | chrome 79.0.3945.130 测试无问题 未做兼容测试 原理为调用 window.print() 方法,但是该方法只能对当前页面全部打印,所以有了以下方案来解决局 ...
- java8date
Java 8:新的时间和日期API 在Java 8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法.Java ...
- Building Ethereum private chain on CentOS
golang安装 yum install golang 查看版本 go version 安装以太坊源代码 Building Geth (command line client) Clone the r ...
- 吴裕雄 python 机器学习——模型选择学习曲线learning_curve模型
import numpy as np import matplotlib.pyplot as plt from sklearn.svm import LinearSVC from sklearn.da ...
- Linux动态库路径配置
参考链接:https://blog.csdn.net/blade2001/article/details/32839937 为什么要关注动态库路径配置,是因为工作中遇到动态库依赖其他动态库,而其他动态 ...
- Python学习(一)——开发语言和Python的安装
开发语言: 高级语言: Python,Java,PHP,C#,Go,ruby,C++...都依赖于C→字节码 语言的对比: Python,Java:既能写网页又能写后台 Python:开发效率比Jav ...
- c# Linq List<T>去除其中重复的项
//要去重的 list<T> listTest: var resultlist= listTest.GroupBy(p =>p.Id).Select(g => g.First( ...
- 黑帽JS跳转
一.常规的JS页面跳转代码 .在原来的窗体中直接跳转用 <script type=”text/javascript”> window.location.href=”http://www.g ...
- Linux虚拟机(CentOS)安装gcc, g++
1. 确保自己的虚拟机联网 点击那个三角形可以选择连接网络 如果还是连不了网,参考https://www.cnblogs.com/xingbo/p/6100554.html 2.联网后,使用命令 ...
- 《掌握融资必备知识》---创业学习---训练营第一课---HHR---
一,<开始学习> 1,四个思考题: (1)从你决定开始融资,到你拿到钱,你都需要经历哪些环节? (2)你知道投资机构内部的工作流程吗? (3)融资最好的时机是什么时候? (4)创投圈的专业 ...