链接列表中的多维数组不起作用?

时间:2016-11-26 05:43:02

标签: java arrays file

所以我有这段代码:

    public static void main (String[] args) throws IOException
{
    Queue popcorn = new LinkedList();
    BufferedReader in = null;
    int j = 0;
    try {
        File file2 = new File("Events.txt");
        in = new BufferedReader(new FileReader(file2));

        String str;
        String [][] process = new String[][];
        while ((str = in.readLine()) != null) {
            String[] arr = str.split(" ");
            for(int i=0 ; i<str.length() ; i++){
            process[j][i] = in.readLine();
        }
            j++;
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

} 

它不起作用。它抛出“变量必须提供维度表达式或数组  初始值设定“

我试图在此网页回答“http://www.chegg.com/homework-help/questions-and-answers/hired-biggy-s-popcorn-handle-popcorn-orders-store-write-java-console-application-reads-dat-q7220573”后对其进行建模 我是PRETTY SURE不起作用。无论如何,这个链表似乎没有成功。就我的String [] []流程声明而言,有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

您不能只初始化没有维度参数的数组。例如,这是无效的:

int[] array = new int[];

需要像这样初始化:

int[] array = new int[10];

或者简单地说:

int[] array;
// ... //
array = new int[10];

多维数组也是如此。要创建一个包含3个大小为5的数组的数组,您可以输入:

int[][] array = new int[3][5];

但是,对于2D数组,您还可以使用:

int[][] array = new int[3][];
array[0] = new int[5];
array[1] = new int[7];
// ... //

关键是,您需要定义基础数组中有多少个其他数组,也可以选择定义所有数组的大小,或者稍后再添加它们。在这种情况下,您需要更改

String [][] process = new String[][];

类似

String [][] process = new String[x][y];