簡體   English   中英

如何簡化多層“ArrayList”?

[英]how to simplify a multi-layer "ArrayList"?

我想定義許多ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>>類型的變量

但這看起來很糟糕。

我現在想到的是創建一個 class 如下

Public class ArrayListMulti{
    ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>> ret;
    public void ArrayListMulti(){
        ret = new ArrayList<>();
    }
    public ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>> getTheArrayList(){
        return ret;
    }
}

但是使用這種方法,每次想要訪問ret值,都必須調用getTheArrayList方法。

有沒有更簡單的方法?

先謝謝了~

您可以擴展ArrayList

public class ArrayListMulti extends ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>>{}

你真的需要這么深的數組列表嗎? 如果是這樣,您應該考慮為您的ArrayListMulti class 提供方便的 API。 例如,您可以添加如下方法:

public List<List<List<Integer>>> get(int i) {
    return ret.get(i);
}

public List<List<Integer>> get(int i, int j) {
    return ret.get(i).get(j);
}

...

等等。 (不要忘記檢查 null 的嵌套列表。)

還有一個小提示:在定義 class 字段時使用接口,而不是 class (在您的情況下為List<List<List<List>>>> ret 。如果您想更改List接口的實現,它將使您的代碼更加健壯(例如將ArrayList替換為LinkedList )。

使用多維數組,如 3D 數組或更多

暫無
暫無

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

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