空指针异常Java 2d String

Mat*_*erg 0 java arrays nullpointerexception

所以我有一个字符串[] [],我想从我的数据库中保存一些信息.Eclipse告诉我我需要初始化我的string [] [],所以我说string []] [] = null.现在我得到一个空指针异常,但我不确定我做错了什么.

try {
            Statement st = con.createStatement();
            String systems[][] = null;
            int firstcounter = 0;

            String item = "SELECT ram, cpu, mainboard, cases, gfx FROM computer_system";

            ResultSet rs = st.executeQuery(item);
            while (rs.next()){
                systems[firstcounter][0] = rs.getString("ram");
                systems[firstcounter][1] = rs.getString("cpu");
                systems[firstcounter][2] = rs.getString("mainboard");
                systems[firstcounter][3] = rs.getString("cases");
                systems[firstcounter][4] = rs.getString("gfx");
                firstcounter++;
            }
            System.out.println(systems[0][0]);
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 5

您应该将数组初始化为非null值,以便使用它:

String systems[][] = new String[n][5];
Run Code Online (Sandbox Code Playgroud)

n数组的最大容量在哪里.

如果您事先不知道阵列应该包含多少行,则可以使用一个ArrayList<String[]>,因为ArrayList可以增加容量.

例如:

        Statement st = con.createStatement();
        List<String[]> systems = new ArrayList<String[]>();
        String item = "SELECT ram, cpu, mainboard, cases, gfx FROM computer_system";
        ResultSet rs = st.executeQuery(item);
        while (rs.next()){
            String[] row = new String[5];
            row[0] = rs.getString("ram");
            row[1] = rs.getString("cpu");
            row[2] = rs.getString("mainboard");
            row[3] = rs.getString("cases");
            row[4] = rs.getString("gfx");
            systems.add(row);
        }
Run Code Online (Sandbox Code Playgroud)