gpt4 book ai didi

java - 将 ArrayList 转换为二维数组时出现问题,仅显示最后添加的值

转载 作者:行者123 更新时间:2023-12-02 04:00:17 28 4
gpt4 key购买 nike

我有以下代码:

ArrayList<String[]> pregsAl= new ArrayList<>();
String[] row = new String[preguntasArray.length];
for (int i=0; i<preguntasArray[0].length; i++) {
for (int j=0; j<preguntasArray.length; j++) {
row[j]= preguntasArray[j][i];
Log.d("row1values",row[0]);
}
pregsAl.add(i, row);
}
String[][] preguntasArrayrand= new String[pregsAl.get(0).length][pregsAl.size()];
String[]row1;
for (int i=0; i<pregsAl.size(); i++) {
row1=pregsAl.get(i);
Log.d("row1values",row1[0]);
for(int j=0; j<row.length; j++){
preguntasArrayrand[j][i]=row1[j];
}
}

当第一个 Log.d 运行时,我可以看到正确的值被添加到 ArrayList“pregsAl”中,但是,当我使用 get 方法将值获取到 String[] 对象时它会只需一遍又一遍地读取我添加到 pregsAl ArrayList 中的最后一个元素(我可以通过我的 Log.d 知道)。我想要做的是将所有数组 preguntasArray 传递给 ArrayList,然后对该 ArrayList 进行洗牌,以便再次将该 ArrayList 转换为数组,但是如果我无法将数组传递给 ArrayList 并且然后再次成功返回数组。我做错了什么?

最佳答案

您仅实例化了一个数组,并且将该引用多次添加到您的List中。将数组声明初始化移至循环内部。比如,

// String[] row = new String[preguntasArray.length];
for (int i=0; i<preguntasArray[0].length; i++) {
String[] row = new String[preguntasArray.length];
for (int j=0; j<preguntasArray.length; j++) {
row[j]= preguntasArray[j][i];
Log.d("row1values",row[0]);
}
pregsAl.add(i, row);
}

关于java - 将 ArrayList 转换为二维数组时出现问题,仅显示最后添加的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005171/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com