数组

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

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

数组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数组.
}
}
}

最新文章

  1. 微信小程序开发初探
  2. 关于安卓APP的启动界面
  3. centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录
  4. 烂泥:nagios学习(四):pnp4nagios图形化绘制nagios数据
  5. Linux环境下实现生产者消费者问题
  6. ref和out
  7. mysql 的not null 与 null的区别(转,恍然大悟)
  8. OSI参考模型初识
  9. 【译】索引进阶(六):SQL SERVER索引书签
  10. vue踩坑记
  11. Ubuntu 18.04安装配置pure-ftpd解决中文乱码问题
  12. 详细解析HTML基础结构
  13. angularjs呼叫Web API
  14. 自学Linux Shell19.1-gawk程序基础特性
  15. BZOJ.2639.矩形计算(二维莫队)
  16. Android逆向 破解第一个Android程序
  17. ExtJS 4.2 教程-03:使用Ext.define自定义类
  18. 【BZOJ】【1072】【SCOI2007】排列perm
  19. 【Java NIO深入研究3】文件锁
  20. django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件

热门文章

  1. 第三百零五天 how can I 坚持
  2. DB2 VALUES用法详解
  3. poj 3041 Asteroids(最小点覆盖)
  4. zoj 1610 Count the Colors
  5. [转]freemarker中的list
  6. VHDL TestBench基础(转)
  7. 回顾JDBC
  8. 通过SCVMM分配SMB 3.0 文件共享
  9. cocos2d(3.0)一些基础的东西
  10. Android 开发之旅:深入分析布局文件&amp;又是“Hello World!”