我是Java编程的新手,并且是一个Objects矩阵,可以通过这种方式使用两个for循环轻松地进行转换
String[][] data = new String[objData.length][objData[0].length];
for (int nRow = 0; nRow < objData.length; nRow++){
for (int nCol = 0; nCol < objData[0].length; nCol++){
data[nRow][nCol] = (String) objData[nRow][nCol];
}
}
我想知道是否可以以更好的方式对其进行编程。我试图使用Arrays.copyOf或类似的东西,像这样
String[][] data = Arrays.copyOf(objData, objData.length*objData[0].length, String[][].class);
但这给了我一个例外...
在java.util.Arrays.copyOf(未知来源)
提前致谢!
最佳答案
复制数组比for()循环编码更有效的唯一方法是System.arraycopy()。它使用低级调用工作-类似于C中的memcopy。如果传递正确的参数,它应该对您有用。
但是,我想向您推荐一些东西。不要创建难以理解的结构。在过去的12年中,我可能在Java中创建了2到3次二维数组。如果您的数据很复杂,则创建保存该数据的类,然后创建保存该类元素的集合或数组。