Scala中的数组
2024-08-25 18:03:37
数组
数组的两种声明方式,建议声明数组时指定类型。
访问数组元素时获取数组下标
数组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数组.
}
}
}
最新文章
- 微信小程序开发初探
- 关于安卓APP的启动界面
- centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录
- 烂泥:nagios学习(四):pnp4nagios图形化绘制nagios数据
- Linux环境下实现生产者消费者问题
- ref和out
- mysql 的not null 与 null的区别(转,恍然大悟)
- OSI参考模型初识
- 【译】索引进阶(六):SQL SERVER索引书签
- vue踩坑记
- Ubuntu 18.04安装配置pure-ftpd解决中文乱码问题
- 详细解析HTML基础结构
- angularjs呼叫Web API
- 自学Linux Shell19.1-gawk程序基础特性
- BZOJ.2639.矩形计算(二维莫队)
- Android逆向 破解第一个Android程序
- ExtJS 4.2 教程-03:使用Ext.define自定义类
- 【BZOJ】【1072】【SCOI2007】排列perm
- 【Java NIO深入研究3】文件锁
- django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件