第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 ...
随机推荐
- iframe重新加载
方法1: document.getElementById('iframeId').contentWindow.location.reload(true); 方法2: document.getEleme ...
- cube-ui IndexList 切换Tab Y坐标归零
<template> <div class="fx t12 column"> <div class="order_search_div fl ...
- 安装Redis教程
今天因为要用到redis中间件,于是自己就尝试安装一下,我把步骤记录了,分享给大家,希望能对大家有帮助! 我的博客地址: https://www.cnblogs.com/themysteryofhac ...
- C语言程序设计100例之(26):二进制数中1的个数
例26 二进制数中1的个数 问题描述 如果一个正整数m表示成二进制,它的位数为n(不包含前导0),称它为一个n位二进制数.所有的n位二进制数中,1的总个数是多少呢? 例如,3位二进制数总共有4个, ...
- 【代码学习】PYTHON 线程
一.使用threading模块多线程执行 可以明显看出使用了多线程并发的操作,花费时间要短很多 创建好的线程,需要调用start()方法来启动 #coding=utf-8 import threadi ...
- 【PAT甲级】1101 Quick Sort (25 分)
题意: 输入一个正整数N(<=1e5),接着输入一行N个各不相同的正整数.输出可以作为快速排序枢纽点的个数并升序输出这些点的值. trick: 测试点2格式错误原因:当答案为0时,需要换行两次
- jQuery中$("input")与$(":input")的区别
$("input")表示获取页面所有的input元素 $(":input")选取表单中所有的input,select 和 button元素
- Mysql 中使用 utfmb4 需要注意的问题
查资料时看到一个前人的经验总结,非常有用: http://seanlook.com/2016/10/23/mysql-utf8mb4/
- Navicat for MySQL怎么往表中填数据
只有往表中更新数据,数据库才会起到真正的作用. 工具/原料 仔细阅读 方法/步骤 1.打开数据库,首先连接localhost,如图所示. 2.连接成功后,右侧便会显示已经建成的表,找到要修改的表, ...
- 使用命令将单个java文件打包为jar
思路:先将java文件编译为class文件,然后再打包为jar 参考博文:https://www.cnblogs.com/sxdcgaq8080/p/8126770.html http://www.m ...