数组

定长数组

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. 图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计

    ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展.可配置的通用算法框架来实现通用调度,如何进行算法的统一注册和构建,如何进行metad ...

  2. Objectarx 相交矩形求并集 面域转多段线

    测试结果: 主要思路:拾取一个点作为矩形的插入点,分别以该点进行两次jig操作,就能得到白色的两个相交的polyline,之后需要变成红色的封闭多段线.做法就是:求出两个白色矩形的面域,然后通过boo ...

  3. Prometheus+Alertmanager+Grafana监控组件容器部署

    直接上部署配置文件 docker-compose.yml version: '3' networks: monitor: driver: bridge services: prometheus: im ...

  4. python判断是否是质数

    质数:只能被1和它自身整除 # 获取用户输入的数,判断是否是质数 num = int(input('输入一个任意的大于1的整数:')) i=2 # 创建一个变量,记录是否是质数,默认num是质数 fl ...

  5. DP-01背包 (题)

    nyoj 325   http://acm.nyist.net/JudgeOnline/problem.php?pid=325 zb的生日 时间限制:3000 ms  |  内存限制:65535 KB ...

  6. gradle 不用打开项目直接编译

    gradlew :api-client:install 编辑完后点击

  7. 月薪30k的Java架构师JVM常见面试题解析

    在做程序员的路上经常会遇到的JVM一些经典面试题,今天给大家分享出我自己的解题思路,希望对大家有帮助,后续有空会持续更新. 1.什么情况下会发生栈内存溢出. 思路: 描述栈定义,再描述为什么会溢出,再 ...

  8. 用PHP写下HELLO WORLD!

    一.选择PHP开发工具 1.phpstorm最新版本 2.打开phpstorm界面 按create键,选择new window ,出下如下页面: 鼠标放在文件夹上,右键单击,弹出以下对话框:做如下操作 ...

  9. Vue 组件 传值

    注意 Vue模板只能有一个对象,要想用多个对象时用div包裹 一.父组件->子组件 通过props 1.子组件: 声明:proprs =[‘xx’],xx是在父组件中引用子组件,子组件的属性(t ...

  10. view 视图函数

    一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错 ...