数组

定长数组

Array:采用()访问,而不是[],下标从 0 开始。

val array1 = new Array[String](5)		//创建数组
println(array1) //返回数组的hashcode
array1.length //Int = 5
array1(1) = "0mifang" //为指定的index位置的元素进行赋值 val array2 = Array("11","22","33") //不用new,直接将值写在数组中
array2(1) //取出index为1的值,String = 22
array2(1) = "dd" //修改数组中的元素

变长数组

ArrayBuffer:常用操作:+= / ++= / insert / remove / toArray / sum / max / reverse

val arrayBuffer1 = scala.collection.mutable.ArrayBuffer[String]()	//创建变长数组
arrayBuffer1 += "a" //添加一个元素
arrayBuffer1 += ("b","c","d") //添加多个元素
arrayBuffer1 ++= Array("e","f","g") //添加一个现有的数组
arrayBuffer1.insert(0, 0) //在指定的位置插入指定的数据,但这种方式效率低,因为需要移动所插入位置后面的所有元素
arrayBuffer1.remove(1) //删除指定位置的数据
arrayBuffer1.remove(1, 2) //删除范围数据,从指定位置开始删除几个数据;第下标为 1 的元素开始,删除 2 个
arrayBuffer1.trimEnd(2) //从尾部截断指定个数的元素;移除最后两个
arrayBuffer1.toArray //转换为定长数组
arrayBuffer1.toBuffer //转换为变长数组
scala.util.Sorting.quickSort(arrayBuffer1) //对数组进行排序
arrayBuffer1.mkString //获取数组中的所有元素内容
arrayBuffer1.mkString(", ") //将数组中的元素按照 ", " 拼接起来
arrayBuffer1.mkString("<", ", ", ">") //将数组中的元素按照 ", " 拼接起来,并且用 “<”,“>” 包起来
arrayBuffer1.toString

转换数组

yield

使用 yield 关键字可以将结果拼接成数组返回

val array1 = Array(1, 2, 3, 4, 5)
val array2 = for (ele <- a) yield ele * ele

函数式编程

array1.filter(_ % 2 == 0).map(2 * _)		//这种方式比较常见
array1.filter { _ % 2 == 0 } map { 2 * _ }

遍历数组

// 使用 for 循环和 until 遍历
for (i <- 0 until array1.length)
println(array1(i)) // 跳跃遍历 。。。

欢迎 follow 供种耗「0的幂方」

Scala 学习(10)之「集合 」的更多相关文章

  1. Spark基础-scala学习(五、集合)

    集合 scala的集合体系结构 List LinkedList Set 集合的函数式编程 函数式编程综合案例:统计多个文本内的单词总数 scala的集合体系结构 scala中的集合体系主要包括:Ite ...

  2. Scala学习(三)——集合

    基本数据结构 Scala提供了一些不错的集合. 数组 Array 数组是有序的,可以包含重复项,并且可变. val numbers = Array(1, 2, 3, 4, 5, 1, 2, 3, 4, ...

  3. 【转载】 一文看懂深度学习新王者「AutoML」:是什么、怎么用、未来如何发展?

    原文地址: http://www.sohu.com/a/249973402_610300 原作:George Seif 夏乙 安妮 编译整理 ============================= ...

  4. csp-s模拟测试59(10.4)「Reverse」(set)·「Silhouette」(容斥)

    A. Reverse 菜鸡wwb又不会了..... 可以线段树优化建边,然而不会所以只能set水了 发现对于k和当前反转点固定的节点x确定奇偶性所到达的节点奇偶性是一定的 那么set维护奇偶点,然后每 ...

  5. 2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐

    原文:2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐 image Raspberry Pi** 是一款基于 ARM 的单板计算机,默认运行一款称为 Raspbian ...

  6. 「 深入浅出 」集合List

    第一篇文章 「 深入浅出 」java集合Collection和Map 主要讲了对集合的整体介绍,本篇文章主要讲List相对于Collection新增的一些重要功能以及其重要子类ArrayList.Li ...

  7. 「 深入浅出 」集合Map

    系列文章: 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍M ...

  8. 「 深入浅出 」集合Set

    系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类: ...

  9. SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

随机推荐

  1. Qt5学习(2)

    1.学习了qt quick application 这是一种跟application不同的设计方式.主要就是靠“拖拖拽拽”,然后设置属性(颜色,大小),布局(margins等),然后要注意控件的从属关 ...

  2. Freemarker 的基础使用 (二)

    freemarker 的基础使用二 ftl 文件 <html> <head> <meta http-equiv="Content-Type" cont ...

  3. Spring学习记录6——ThreadLocal简介

    Spring通过各种模板类降低了开发者使用各种数据持久化技术的难度.这些模板类是线程安全的,所以 多个DAO可以复用同一个模板实例而不会发生冲突.在使用模板类访问底层数据时,模板类需要绑定数据连接或者 ...

  4. map + 前缀和

    B. Balanced Substring time limit per test 1 second memory limit per test 256 megabytes input standar ...

  5. .net core 2.2 中IHttpClientFactory的使用

    在.net core中使用HttpClient请求api,有很多资源的问题,比如使用using的时候,虽然可以释放资源,但是套接字(socket)也不会立即释放,所以.net core2.1中,新增了 ...

  6. 「2.0」一个人开发一个App,小程序从0到1,文件剖析

    不知你是不是见到“文件剖析”这4个大字,才点进来看一看的?如果真是的话,那我可以坦诚.真心.负责任地告诉你:你上当了,你上了贼船啦,如果你现在想跳的话,还来得及,反正茫茫大海中,鲨鱼正缺搞程序的人.说 ...

  7. .net core webapi搭建(3)Code first+拆层三层+仓储

    将项目拆层 我们要 将项目拆分成 Infrastructure     基础层 Core                   核心层 Utility                  工具 我们想在就 ...

  8. 异想家Win10系统安装的软件与配置

    1.C盘推荐一个硬盘,256G,安装好驱动,显卡配置好高性能,激活Win10,屏蔽WIn10驱动更新(Show or hide updates.diagcab),改电脑名称为Sandeepin-PC. ...

  9. jemeter察看结果树中文乱码解决办法

    在使用jemeter进行接口测试时,在察看结果树查看接口返回结果时,中文全部显示乱码,这个问题的解决方式如下: 在jemeter的安装路径下面,找到bin目录下, 在bin目录下面找到这个文件:jme ...

  10. [ Python入门教程 ] Python中日志记录模块logging使用实例

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...