java - 二维数组声明中的列数

标签 java multidimensional-array

我想读取一个文本文件并将其插入到二维数组中。这是我的代码。

        List<String> list2 = new ArrayList<String>();

        String thisLine = null;
        while ((thisLine = input1.readLine()) != null) {
        list2.add(thisLine);
        }

        double[][] X;
        X = new double[list2.size()][];

        String[] temp;
        String delims = ",";

        for (int k1 = 0; k1 <= (X.length - 1); k1++) {
            String line = input.readLine();
            temp = line.split(delims);
            for (int i = 0; i < temp.length; i++) {
                X[k1][i] = Double.parseDouble(temp[i]);
            }
        }

问题是它不返回任何内容,一旦我在二维数组声明行中指定列数,一切都很好。根据我的java知识,二维数组声明中的列数是不必要的,并且在我的项目中(因为我们应用不同的数据集),未指定列数。

最佳答案

二维数组基本上是数组的数组。我们将其称为由内部数组组成的外部数组。

初始化二维数组时,确实只需声明外部数组的长度。 IE。行数。通过这样做,只有外部数组将被初始化。 内部数组尚未初始化。

事实上,这两个数组将包含完全相同的元素:

double[][] array1 = new double[3][];
double[][] array2 = {null, null, null};

要初始化内部数组,您可以执行以下操作之一:

array1[0] = new double[4];
array1[0] = new double[] {1.0, 3.14, 42.0, 2.718};

在您的情况下,您可以简单地将其放入代码中来初始化内部数组:

temp = line.split(delims);
X[k1] = new double[temp.length]; //<- Add this line

关于java - 二维数组声明中的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704298/

相关文章:

java - 如何计算 ArrayList 中的唯一值?

java - 重新部署或安装期间无法在 webpshere 上启动应用程序

php - 将配置(文本文件)转换为多维数组

javascript - 删除javascript数组中的数据列

php - PHP 中的多维数组大小限制

java - org.hibernate.PropertyValueException : not-null property references a null or transient value:

java - NetBeans 如何处理 IntelliJ 注释?

linux - Tomcat是否使用符号链接(symbolic link)/usr/bin/java下的java?

c++ - &table [0] [0]和&table有什么区别?

c++ - 在 C++ 中分配数据点的二维数组