数组

数组的两种声明方式,建议声明数组时指定类型。

访问数组元素时获取数组下标

数组Array类本身有很多非常方便的方法

变长数组ArrayBuffer,能够动态增加元素,也可以实现与Array的互转

看代码:

 import scala.collection.mutable.ArrayBuffer
import java.util.ArrayList /**
* 数组
* @author Administrator
*/
object TestScalaArray {
def main(args: Array[String]) = {
//定义方式一
var arr1 = new Array[Int](3) //中括号表示数组的类型,小括号中指定是数组的长度
arr1(1) = 4 //给数组第二个元素复制为4
for(i <- arr1){
println(i)
}
/*
* 输出结果
* 0
* 4
* 0
*/ //定义方式二
var arr2 = Array(1,2,3,4,5,6,"hehe") //中括号表示数组的类型,小括号中指定是数组初始化的值
for(i <- arr2){
println(i)//循环遍历输出arr2中的值
} var arr3 = Array(1,2,3,4,5,6)
println(arr3.min)//输出数组中最小值1
println(arr3.max)//输出数组中最小值6
println(arr3.sum)//输出数组中的和
println(arr2.mkString(",")) //和Java中的Arrays.toString(arr)一样
//输出:1,2,3,4,5,6,hehe
println(arr2.mkString("[",",","]"))//这个也和Java中的Arrays.toString(arr)
//输出:[1,2,3,4,5,6,hehe] var arr4 = Array(1,2,3,4,5,6)
for(i <- 0 to arr4.length - 1){//for(i <- 0 until arr4.length - 1)
println(arr4(i))
} //利用for的推导式产生一个新的数组
var arr5 = for(i <- arr4) yield i + 1
println(arr5.mkString(","))//输出:2,3,4,5,6,7 var arr6 = Array("dbd","sdfs","yeres","bc")
println(arr6.min)//输出:bc 按照字典排序
println(arr6.max)//输出:yeres var arr7 = Array(1,5,8,2,4)
var arr8 = arr7.sorted //排序 升序
var arr9 = arr6.sorted //排序 升序 按照字典排序
println(arr8.mkString(",")) //输出: 1,2,4,5,8
println(arr9.mkString(",")) //输出: bc,dbd,sdfs,yeres //如果没有变量去接受arr7.sorted
arr7.sorted
println(arr7.mkString(",")) //输出的还是 1,5,8,2,4
//sorted并不会对原数组进行重新排序...必须有一个变量去接收排序的数组. /*变长数组*/
var arr10 = ArrayBuffer(1,2,3,4,5)//用ArrayBuffer来声明变长数组
arr10 += 9 //给一个变长数组增加一个元素用"+="
var arr11 = arr7.toBuffer //把一个定长数组arr7变成变长数组用toBuffer
arr11 ++= arr10 //给一个变长数组增加另一个数组中的元素用"++="
println(arr11.mkString(","))//输出:1,5,8,2,4,1,2,3,4,5,9 //scala的IO这块很多都没有自己封装的API,可以用Java的API
var list = new ArrayList[Int](3)
list.add(100)
list.add(101)
list.add(102) for(i <- 0 until list.size()){
println(list.get(i))// 循环遍历list数组.
}
}
}

Scala中的数组的更多相关文章

  1. 2. scala中的数组

    一. 数组声明 定长数组 scala> new Array[String](5) res1: Array[String] = Array(null, null, null, null, null ...

  2. 【Scala篇】--Scala中集合数组,list,set,map,元祖

    一.前述 Scala在常用的集合的类别有数组,List,Set,Map,元祖. 二.具体实现 数组   1.创建数组 new Array[Int](10) 赋值:arr(0) = xxx Array[ ...

  3. Scala中的数组和集合操作

    package test /* 1.在scala集合中,Iterable是共同的Trait,Iterable要求继承者实现一些共同的方法,例如元素的遍历 * 2.Array是scala基础的数据结构, ...

  4. scala中的数组的转换操作

    1.共有两种操作 转换成一种新的数组 2.yield转换 3.函数式编程转换

  5. Programming In Scala笔记-第十七章、Scala中的集合类型

    本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...

  6. Scala学习(三)----数组相关操作

    数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...

  7. Scala中Zip相关的函数

    在Scala中存在好几个Zip相关的函数,比如zip,zipAll,zipped 以及zipWithIndex等等.我们在代码中也经常看到这样的函数,这篇文章主要介绍一下这些函数的区别以及使用. 1. ...

  8. [原创]Scala学习:数组的基本操作,数组进阶操作,多维数组

    1.Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合 2 声明数组变量: 要使用的程序的数组 ...

  9. Scala中的If判断&While&For循环

    If 判断: object TestScalaIf { def main(args: Array[String]): Unit = { // val resutlt = judge1(-100) // ...

随机推荐

  1. homework-09

    这次作业主要考察C++11的简单用法,个人感觉这样的练习对我这种编程能力比较差的非常有用,加深了对C++11的理解. Lambda的用法 计算“Hello World!”中 a.字母‘e’的个数 b. ...

  2. 【转】在企业内部分发 iOS 应用程序

    (via:破船之家,原文:Provision iOS IPA App for In-House Enterprise Distribution)   在企业内部分发 iOS 应用程序非常复杂.经过努力 ...

  3. 【转】Objective-C代码注释和文档输出的工具和方法

    http://blog.xcodev.com/blog/2013/11/01/code-comment-and-doc-gen-tools-for-objc/ 代码注释可以让代码更容易接受和使用,特别 ...

  4. [iOS UI进阶 - 2.1] 彩票Demo v1.1

    A.需求 1.优化项目设置 2.自定义导航栏标题按钮 3.多版本处理 4.iOS6和iOS7的适配 5.设置按钮背景 6.设置值UIBarButtonItem样式   code source: htt ...

  5. [iOS基础控件 - 6.10.5] UIApplication

    A.概念 1.UIApplication对象是应用程序的象征,每个应用都有 2.单例 3.[UIApplication sharedApplication] 获取 4.iOS启动创建的第一个对象 5. ...

  6. UVaLive 7375 Hilbert Sort (递归,四分图,模拟)

    题意:告诉你一条希尔伯特曲线的大小,然后给你n 个人,及n 个人的坐标,你的起点是左下角,终点是右下角,按照希尔伯特的曲线去走,按照这个顺序给n个人排序, 按顺序输出每个人的名字! 析:这就是一个四分 ...

  7. Unity3D之移植学习笔记:移植到Android平台更好的方法

    接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...

  8. 去除Linq to Sql 查询结果中的空格

    原来的写法: Dim db = From city In DataContext1.AddressCity Where city.ProvinceID = dgvAddress(2, e.RowInd ...

  9. wikioi 3027 线段覆盖 2

    题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段 ...

  10. JQuery ajax请求一直返回Error(parsererror)

    $.ajax({ type :"post", url :"busine_in.action", timeout : 40000, data: "cen ...