簡體   English   中英

在將ArrayList添加到ArrayList的ArrayList時遇到麻煩

[英]Having trouble with adding an ArrayList to an ArrayList of ArrayLists

public class Tabel {
    private static int dimension;

    private ArrayList<ArrayList<Character>> tabel;


    public Tabel(int dimension) {

        Tabel.dimension = dimension;

        for (int i=0;i<Tabel.dimension*Tabel.dimension;i++) {
           tabel.add(new ArrayList<Character>());
        }

     }
}

當我嘗試調試(eclipse ide)時,我遇到很多奇怪的“錯誤”,或者至少遇到了一些我認為是意外的事情。

專用靜態int不會出現在調試的“變量”部分中。

我得到一個NullPointerExceptiontabel.add(...)但是當我觀看了調試,它進入for一次,沒有在表中添加任何東西,因為當我點擊“下一步”,而不是跳轉到花括號它跳出功能的

如果我對.add注釋, .add它將起作用(我認為)。 我的語法錯誤嗎? 還是我應該發布更多代碼?

tabel未初始化,因此為null。

更改

private ArrayList<ArrayList<Character>> tabel;

private ArrayList<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();

或更好:

private List<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();

因為這不會將tabelArrayList綁定tabel

您尚未初始化private列表。 請執行下列操作:

private List<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();

我也很難理解嵌套的級別。

最好引用List而不是ArrayList。 除非您在具體的類中需要一個方法,否則它使您的程序可以更靈活地引用該接口以及該接口中的方法。

創建具有定義為“字符列表”的字段的類(1)。 將字段設置為構造函數中的新ArrayList。

創建另一個類(2),該類的字段定義為類(1)的列表。 將字段設置為構造函數中的新ArrayList。

創建另一個具有定義為類列表(2)的字段的類(3)。 將字段設置為構造函數中的新ArrayList。

由於您了解自己在做什么,因此可以為這3個類指定更有意義的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM