java scala 数组_Scala多维数组、Java数组与Scala数组的隐式转换

本文介绍了如何在Scala中创建多维数组,包括使用Array.ofDim方法构造规则二维数组以及手动创建不规则多维数组。此外,还探讨了Java数组与Scala数组之间的隐式转换,通过scala.collection.JavaConversions库实现数组类型的互转。
摘要由CSDN通过智能技术生成

多维数组:数组的元素,还是数组,数组套数组,就是多维数组

构造指定行与列的二维数组:Array.ofDim方法

val multiDimArr1 = Array.ofDim[Double](3, 4)

multiDimArr1(0)(0) = 1.0

构建一个指定行与列的二维数组, eg.

package com.sunny.spark.scala.array

/**

*

*

* @author Sunny

* @taskId:

* @version 1.0

* @createDate 2018/07/14 15:10

* @see com.yrz.spark.scala.array

*/

object ManyArray1 {

def main(args: Array[String]): Unit = {

//创建一个长度为3的外层数组,数组内的元素是长度为4的数组。也就是三行四列

val manyArray = Array.ofDim[Int](3,4)

manyArray(0)=Array(1,2,3,4)

manyArray(1)=Array(1,2,3,4)

manyArray(2)=Array(1,2,3,4)

/**

* 打印结果为:

* 1234

* 1234

* 1234

*/

for (elem

for (elem

print(elem)

}

println()

}

}

}

构造不规则多维数组:

val multiDimArr2 = new Array[Array[Int]](3)

multiDimArr2(0) = new Array[Int] (1)

multiDimArr2(1) = new Array[Int] (2)

multiDimArr2(2) = new Array[Int] (3)

multiDimArr2(1)(1) = 1

创建一个不规则的二维数组, eg.

package com.sunny.spark.scala.array

/**

*

*

* @author Sunny

* @taskId:

* @version 1.0

* @createDate 2018/07/14 15:13

* @see com.sunny.spark.scala.array

*/

object ManyArray2 {

def main(args: Array[String]): Unit = {

//创建一个长度为3的外层数组,数组里边的元素是数组

val manyArray = new Array[Array[Int]](3)

manyArray(0) = new Array[Int](1) //第一个元素为长度为1的数组

manyArray(1) = new Array[Int](2) //第二个元素为长度为2的数组

manyArray(2) = new Array[Int](3) //第三个元素为长度为3的数组

manyArray(0)=Array(1)

manyArray(1)=Array(1,2)

manyArray(2)=Array(1,2,3)

/**

* 打印结果为:

* 1

* 12

* 123

*/

for (elem

for (elem

print(elem)

}

println()

}

}

}

Java数据与Scala数组的隐式转换

Java数组隐式转换成Scala数组,在需要转换的函数前边加上隐式转换

import scala.collection.JavaConversions.asScalaBuffer

Scala数组转换成Java数组,在需要转换的函数前边加上隐式转换

import scala.collection.JavaConversions.bufferAsJavaList

Scala代码中,直接调用JDK(Java)的API,比如调用一个Java类的方法,势必可能会传入Java类型的list;Scala中构造出来的list,其实是ArrayBuffer;你直接把Scala的ArrayBuffer传入Java接收ArrayList的方法,肯定不行。

import scala.collection.JavaConversions.bufferAsJavaList

import scala.collection.mutable.ArrayBuffer

val command = ArrayBuffer("javac", "C:\\Users\\Administrator\\Desktop\\HelloWorld.java")

val processBuilder = new ProcessBuilder(command)

val process = processBuilder.start()

val res = process.waitFor()

import scala.collection.JavaConversions.asScalaBuffer

import scala.collection.mutable.Buffer

val cmd: Buffer[String] = processBuilder.command()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值