第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 ...
随机推荐
- Mount命令的参数详解
导读 mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了. 挂接命令(mount) 首先,介绍 ...
- 关于C++指针、引用和const关键字的各种关系
#include <stdio.h> #include<iostream> using namespace std; typedef char *new_type; int m ...
- 修改链接服务器 Rpc &Rpc Out
USE [master] GO EXEC master.dbo.sp_serveroption @server=N'LinkName', @optname=N'rpc', @optvalue=N'tr ...
- java 反射获取设置私有成员变量的值
for (Object arg:args) { //处理applicationCode Class<?> argClass = arg.getClass(); Field applicat ...
- LVS DR实验!
=========================================================================== 操作图 设备:两台节点模拟机,一台调度机 调度机 ...
- SpringCloud全家桶学习之服务注册与发现及Eureka高可用集群搭建(二)
一.Eureka服务注册与发现 (1)Eureka是什么? Eureka是NetFlix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故 ...
- MySQL忘记密码(终极解决方法,亲测有效,windows版本)
1.进入mysql的bin目录 2.net stop mysql 3.mysqld --skip-grant-tables 输入 mysqld --skip-grant-tables 回车. (--s ...
- 将训练好的Tensorflow模型部署到web应用中
做一个简易web使用Flask是最好的选择,不仅上手快,使用也很便利.Django很强大也很好用,但一次就会创建一个项目的所需的文件,我觉得对于测试一个模型在web端有没有效果没必要用它. flask ...
- WordPress搭建教程---购买域名+购买VPS主机+域名DNS解析+网站环境+上传网站程序
WordPress搭建教程 购买域名---NameSilo 购买VPS主机---Vultr 域名DNS解析 网站环境 上传网站程序 参考文章: 1. WordPress搭建教程 https://zhu ...
- ROS机器人系统学习——踩坑之路
推荐学习教程:深蓝学院 机器人操作系统ROS理论与实践学习 在学习到第2讲ROS基础的分布式通信时,一直卡在这里,主机开启小海龟后,从机虽然可以通过 rostopic list 列出当前的所有topi ...