变长数组:数组缓冲

Scala中对于那种长度会变的数组的数据结构为ArrayBuffer。

    import scala.collection.mutable.ArrayBuffer;
// 一个空的数组缓冲,准备存放整数
val array_buffer = ArrayBuffer[Int](); // 或者 new ArrayBuffer[Int] array_buffer += 1; // 结果为:ArrayBuffer(1) // 用+=在尾端添加元素
array_buffer += (1, 2, 3, 5); // 结果为:ArrayBuffer(1, 1, 2, 3, 5) // 在尾端添加多个元素,以括号包起来,你可以用++=操作符追加任何集合
array_buffer ++= Array(8, 13, 21); // 结果为:ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21) // 移除最后5个元素
array_buffer.trimEnd(5); // 结果为:ArrayBuffer(1, 1, 2) /*
在数组缓冲的尾端添加或移除元素是一个高效(“amortized constant time”)的操作。
你也可以在任意位置插入或移除元素,但这样的操作并不那么高效——所有在那个位置之后的元素都必须被平移。举例如下:
*/
array_buffer.insert(2, 6); // 结果为:ArrayBuffer(1, 1, 6, 2) // 在下标2之前插入,你可以插入任意多的元素
array_buffer.insert(2, 7, 8, 9); // 结果为:ArrayBuffer(1, 1, 7, 8, 9 , 6, 2) array_buffer.remove(2); // ArrayBuffer(1, 1, 8, 9, 6, 2) // 第2个参数的含义是要移除多少个元素
array_buffer.remove(2, 3); // ArrayBuffer(1, 1, 2) /*有时你需要构建一个Array,但不知道最终需要装多少元素。在这种情况下,先构建一个数组缓冲,然后调用:
反过来,调用a.toBuffer可以将一个数组a转换成一个数组缓冲
*/
array_buffer.toArray; // Array(1, 1, 2)

映射

元组

scala学习笔记-集合的更多相关文章

  1. Scala学习笔记--集合类型Queue,Set

    补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...

  2. scala 学习笔记--集合

    1.scala集合的null 是nil 而不是null 2.set的三个方法union,intersect,diff union--合并去重 intersect--交集 diff--a减去(a和b交集 ...

  3. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  4. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  5. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  6. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  7. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  8. Scala学习笔记(五)—— 元组和集合

    1. 映射 映射Java中的Map,即Key/Value的数据形式 映射的创建,有以下两种方法 scala> val map =Map("Lisa" -> 90 , & ...

  9. Scala 学习笔记之集合(3)

    建立一个Java类,为了演示Java集合类型向Scala集合的转换: import java.util.ArrayList; import java.util.List; public class S ...

随机推荐

  1. Android webview 应用

    现在在android把一个网站打包成apk 是很简单的事,不懂一点代码的都可以去百度生成一个apk,app.当然样式就不是你所能控制的. 今天我就介绍一下 android 的 webview 在And ...

  2. centos 安装RAR

    根据系统的情况下载rarlinuxx64版本wget http://www.rarlab.com/rar/rarlinux-x64-4.2.0.tar.gzx86版本wget http://www.r ...

  3. 【创建型】Singleton模式

    单例模式可以说是所有23种设计模式中最为简单的一个,没有之一.其主要思想就是保证整个应用环境中,最多只会有一个对象的实例.类关系图参考如下: 在c++中,单例模式的实现,较为常用的实现方式一般为: n ...

  4. C程序设计语言练习题1-15

    练习1-15 重新编写1.2节中的温度转换程序,使用函数实现温度转换计算. 代码如下: #include <stdio.h> // 包含标准库的信息. float fahrToCelsiu ...

  5. IE11新特性 -- Internet Explorer 11:请不要再叫我IE

    Internet Explorer 11 中的一些新特性,包括对WebGL 的支持.预抓取.预渲染.flexbox.mutationobservers 以及其他一些 Web 标准的支持.但是更有趣的是 ...

  6. mysql 查询每个分组前N条记录

    mysql 查询每个分组前N条记录 假设存在表movie,  有字段 id, part(地区), mcount(观看次数) 现查询每个地区观看次数最多的3部movie, 则表 ###id虽未存在gro ...

  7. php/java bridge

    http://blog.163.com/wangyifeng_0821/blog/static/3077437220103645838478/ http://hi.baidu.com/luanxian ...

  8. 位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)

    原文:位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<) 先知道这两个二进制数据的特点:   1=0000 0000 0000 0000 0000 000 ...

  9. Android 使用Application总结

    Application 配置全局Context 第一步.写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里面实例化Application ...

  10. 普通的101键盘在Mac上的键位对应

    为了方便,搞了一个普通的101有线全键盘 + Magic TrackPad配Macbook.        然后发现了一个小问题,按键对应似乎不像我想的那么完美,F1~F12和Macbook不对应,于 ...