加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala动态多维可变数组,如数据结构

发布时间:2020-12-16 19:17:39 所属栏目:安全 来源:网络整理
导读:有没有办法在 Scala中构建动态多维数组?我知道Scala中的数组必须按其大小和尺寸进行初始化,所以我不希望这样.数据结构应该是动态的.我尝试使用列表中的列表来构建它,但我在某种程度上迷失了自己. 有这么多不同的类型,也许我只是找不到合适的类型.所以请把我
有没有办法在 Scala中构建动态多维数组?我知道Scala中的数组必须按其大小和尺寸进行初始化,所以我不希望这样.数据结构应该是动态的.我尝试使用列表中的列表来构建它,但我在某种程度上迷失了自己.

有这么多不同的类型,也许我只是找不到合适的类型.所以请把我推向正确的方向.

解决方法

如果你想做点什么

a(5)= //一些计算的结果

那么你需要使用可变集合层次结构中的东西.我建议使用ArrayBuffer.

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> val a = ArrayBuffer.fill(3,3)(0)
a: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(0,0),ArrayBuffer(0,0))

scala> a(2)(1) = 4

scala> a(0) = ArrayBuffer(1,2,3)

scala> a
res2: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(1,3),4,0))

请注意,fill允许您自动创建和初始化最多5D结构.另请注意,您可以扩展这些的长度,但它不会扩展整个多维结构,只会扩展您添加的结构.所以,例如,

scala> a(2) += 7 // Add one element to the end of the array
res3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0,7)

scala> a
res4: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]]
= ArrayBuffer(ArrayBuffer(1,7))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读