我已经遍历了有关Groovy 2D数组的所有关于stackoverflow的问题,答案似乎还不够。我对groovy还是很陌生,因此,衷心感谢您在这方面的投入。
我正在尝试通过以下方式创建2D阵列。
def extractedArray = []
// fullArray is a 2D array of size[11987][4]
def x = 0
for (x; x<fullArray.length; x++){
if (x==0){
extractedArray[] = []
extractedArray[0][0]=fullArray[0][0]
extractedArray[0][1]=fullArray[0][2]
}
else{
for(def y=0; y<extractedArray.length; y++){
//other functions
}
}
}
但这似乎给了我以下错误。
Caught: java.lang.NullPointerException: Cannot invoke method putAt() on null object
java.lang.NullPointerException: Cannot invoke method putAt() on null object
at computeMPR.main(computeMPR.groovy:37)
答案 0 :(得分:0)
def extractedArray = []
这不是数组,而是列表初始化
因此您可以更改代码:
//extractedArray[0][0]=fullArray[0][0]
//extractedArray[0][1]=fullArray[0][2]
extractedArray << [fullArray[0][0], fullArray[0][2]]
或者,如果您更喜欢数组,则可以执行以下操作:
Object[] extractedArray = [fullArray.size()]
extractedArray[0] = [
fullArray[0][0],
fullArray[0][2]
] as Object[]