在Scala中通过索引在ArrayBuffer中设置值

时间:2016-06-20 11:32:51

标签: scala

我需要在数组中添加两个字符串,省略第一次出现:

SELECT * FROM cmis:document WHERE CONTAINS('PATH:\"/app:company_home/st:sites/*\"')

但我得到了

{{1}}

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的ArrayBuffer为空,因此您无法将索引i的元素设置为新String - 如果{{1},则i不是有效索引}} 是空的。首先通过添加元素来确保元素存在于ArrayBuffer中:

ArrayBuffer

现在val strings = ArrayBuffer[String]() strings += "abc1" strings += "abc2" 有两个元素,您可以根据需要修改它们。请注意,索引从0开始,而不是从1开始。

ArrayBuffer

如果您想预先填写strings(0) = "something else" strings(1) = "hello world" ,可以使用ArrayBuffer,就像我在回答您之前的问题时向您展示的那样。

fill

或者,使用// Fill with 10 empty strings (creates 10 elements in the ArrayBuffer) val strings = ArrayBuffer.fill(10) { "" } // Now you can set them (valid indices are 0...9) strings(0) = "abc1" strings(1) = "abc2" 代替Map,其中地图的键是数字,值是字符串。

ArrayBuffer