Scala编程入门---数组操作之Array.ArrayBuffer以及遍历数组
在Scala中,Array代表的含义与Java类似,也是长度不可改变的数组。此外,由于Scala与java都是运行在JVM中,双方可以互相调用,因此Scala数组底层实际上是java数组。列如字符串数组java的String[],整数的数组int[].
val a = new Array[Int](10) val a = new Array[String](10)
可以直接使用Array()创建数组,元素类型自动推断
val a = Array("Hello","world")
a(0) ="hi"
val a = Array("Hello",30)
a:
Array[Any]("Hello",30)
ArrayBuffer:
在Sacla中,如果需要类似于JAVA中的ArrayList这种可变长度的集合类,则可以使用ArrayBuffer.
#如果不想每次都是用完全限定名,则可以预先导入ArrayBuffer类
import scala.collection.mutable.ArrayBuffer
//使用ArrayBuffer的方式可以创建一个空的ArrayBuffer
val b = ArrayBuffer[Int]()
//使用+=操作符,可以添加一个元素,或者多个元素
//这个语法必须谨记在心!因为Sprak源码里大量使用了这种集合操作语法!
b+=1
b+=(2,3,4,5)
//使用++=操作符,可以添加一个元素,或者多个元素
b++=Array(6,7,8,9)
//使用trimEnd()函数,可以从尾部截断指定个数的元素
b.trimEnd(5)
//使用insert()函数可以在指定位置插入元素
//但是这种操作效率很低,因为需要移动指定位置后的所有元素
b.insert(5,6)
b.insert(6,7,8,9,10)
//使用remove()函数可以移除指定位置元素
b.remove(1)
b.remove(1,3)
//Array与ArrayBuffer可以互相进行转换
b.toArray
a.toBuffer
遍历Array和ArrayBuffer
//使用for循环和until遍历Array/ArrayBuffer
/使用until是RichInt提供的函数
for(i <- 0 until b.length)
println(b(i))
//跳跃遍历Array/ArrayBuffer
for(i <- until (b.length,2))
println(b(i))
//从尾部遍历Array/ArrayBuffer
for(i <- (0 until b.length).reverse)
print(b(i))
//使用"增强型for循环" 遍历Array/AraayBuffer
for(e <- b)
print(e)
数组常见的操作:
//数组元素求和
val a = Array(1,2,3,4,5)
val sum = a.sum
//获取数组最大值
val max = a.max
//对数组进行排序
scala.util.Sorting.quickSort(a)
//获取数组中的所有元素类容
a.mkString
a.mkString(",")
a.mkString("<",",",">") //toString函数
a.toString
b.toString
Scala编程入门---数组操作之Array.ArrayBuffer以及遍历数组的更多相关文章
- Scala 数组操作之Array、ArrayBuffer以及遍历数组
ArrayBuffer 在Scala中,如果需要类似于Java中的ArrayList这种长度可变的集合类,则可以使用ArrayBuffer. // 如果不想每次都使用全限定名,则可以预先导入Array ...
- javascript数组操作(创建、元素删除、数组的拷贝)
这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
- Scala编程入门---数组操作之数组转换
使用yield和函数式编程转换数组 //对Array进行转换,获取的还是Aarry val a = Array(1,2,3,4,5) val a2 = for(ele <- a) yield e ...
- Scala编程入门---函数式编程之集合操作
集合的函数式编程: 实战常用: //map案例实战:为List中的每个元素都添加一个前缀. List("leo","Jen","peter" ...
- Scala编程入门---函数式编程
高阶函数 Scala中,由于函数时一等公民,因此可以直接将某个函数传入其他函数,作为参数.这个功能是极其强大的,也是Java这种面向对象的编程语言所不具备的. 接收其他函数作为函数参数的函数,也被称作 ...
- Scala编程入门---Map与Tuple
创建Map //创建一个不可变的Map val ages = Map("Leo" -> 30,"Jen" ->25,"Jack" ...
- Scala编程--基本类型和操作
如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方 ...
- Scala编程入门---面向对象编程之对象
对象 Object,相当于class单个实例,通常在里面放一些静态的filed或method 第一次调用object方法时候,就会执行object的constructor,也就是Object中不在me ...
随机推荐
- 四大组件之Service小结
总结提高,与君共勉! 1.Service是什么 Service 是看不到界面的,,就是一个没有界面的Activity, 并且长期在后台运行的一个组件.. 由于ANR对Activity和Broadcas ...
- C++ Primer 有感(标准库vector及迭代器)
vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...
- RecyclerView 实现横向滚动效果
我相信很久以前,大家在谈横向图片轮播是时候,优先会选择具有HorizontalScrollView效果和ViewPager来做,不过自从Google大会之后,系统为我们提供了另一个控件Recycler ...
- 一键安装gitlab7在rehl6.4上
一键安装gitlab7在rehl6.4上 参考原文: http://blog.csdn.net/ubuntu64fan/article/details/38367579 1 关于gitlab7 无论如 ...
- GIT版本控制 — GIT与SVN的相互转换 (三)
git-svn git-svn用于Git和SVN的转换,可以把Git仓库迁移成SVN仓库,反之亦可. 详细介绍可见[1],或者命令行输入git-svn. Bidirectional operation ...
- css3学习之旅-css的基本语法(1)
后面就将要介绍css的全面语法: 1.css介绍 2.css基本语法 3.css高级语法 4.css派生选择器 5.css的id选择器 6.css类选择器 7.css属性选择器 !!!!!css介绍 ...
- hibernate关联对象的增删改查------查
本篇博客是之前博客hibernate关联对象的增删改查------查 的后继,本篇代码的设定都在前文已经写好,因此读这篇之前,请先移步上一篇博客 //代码片5 SessionFactory sessi ...
- 某集团BI决策系统建设方案分享
企业核心竞争能力的提升,需要强壮的运营管理能力,需要及时.准确.全面的业务数据分析作为参考与支撑. 某集团是大型时尚集团,内部报表系统用的QlikView,但是管理分配不够灵活,不能满足数据安全的要求 ...
- Makefile学习(三)[第二版]
make常用内嵌函数 1.函数调用 $(function arguments) #$引用的结果就是函数生成的结果 2.Makefile下常用的函数 1)$(wildcard PATTERN) #匹配当 ...
- Git学习备忘
本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...