2016-11-24 58 views
1

我期待創建數組列表的ArrayList。Array列表的Array列表 - 創建一個類對象的多維數組列表

import java.util.ArrayList; 
import java.util.List; 

class Neighbors{ 
ArrayList<Integer> inner = new ArrayList(); 
Neighbors(){} 
} 

ArrayList<Neighbors> outer = new ArrayList<Neighbors>(); 

void setup() { 
size(1280, 700, JAVA2D); 
background(0); 

Neighbors test1 = new Neighbors(); 
Neighbors test2 = new Neighbors(); 

test1.inner.add(0); 
test1.inner.add(1); 
test1.inner.add(2); 

test2.inner.add(5); 
test2.inner.add(6); 
test2.inner.add(7); 

println(test1.inner); 
println(test2.inner); 
// outer.add((ArrayList)test.inner); 
outer.add(test1.inner); 
outer.add(test2.inner); 
println(outer); 

} 

這是我上面的代碼,但我不能內部的ArrayList到外陣列添加。我不確定我在做什麼是對的。或者如果有其他方法以正確的方式做到這一點,請提供幫助。首先,我試圖創建一個ArrayList作爲一個類下的對象,我想在這個內部列表中使用這些內部數組列表。基本上我需要一個二維數組列表的幫助下的類。請諮詢或幫助我一個示例代碼,我可以在arraylist中使用arraylist,添加項目和訪問它們的方式。

+1

如何將這些數組列表一起使用?他們擁有不同的類型('Integer' vs'Neighbor'),所以你不能混合它們。此外,如果您只是從該類外部訪問某些類的成員變量,則認爲它是封裝不好的。你真的想做什麼? – Robert

+1

如果你想要一個二維'ArrayList',你試過了嗎?ArrayList >?你想達到什麼目的? – Logan

+0

我想用這些數組列表作爲2D動態內存的網格或矩陣。 每個將持有整數 爲例如: 0(行) - 第5,6,8,10 1(行) - 21,4個,5 2(行) - 1,4,5,5, 11,12,16,....... – zack

回答

2

相反的:

outer.add(test1.inner); 
outer.add(test2.inner); 

你想改用以下?

outer.add(test1); 
outer.add(test2); 

編輯:爲了打印outer,試試這個。

首先,添加一個toString()方法將Neighbors類:

class Neighbors { 
    ArrayList<Integer> inner = new ArrayList(); 

    @Override 
    public String toString() { 
     return inner.toString(); 
    } 
} 

然後,您可以使用簡單的打印outer

System.out.println(outer); 

另外,如果你不想使用一個類,你可以簡單地使用ArrayList的ArrayList:

ArrayList<ArrayList<Integer>> outer = new ArrayList<>(); 
outer.add(new ArrayList<>()); 
outer.get(0).add(0); 
outer.get(0).add(1); 
outer.get(0).add(2); 

ArrayList<Integer> inner = new ArrayList<>(); 
inner.add(3); 
inner.add(4); 
outer.add(inner); 

System.out.println(outer); 

這打印出[[0, 1, 2], [3, 4]]

+0

是的,你說得對,那是有用的,謝謝你。那麼我如何打印外部數組列表。 println(outer); - doesn; t給arraylist,而不是給它的位置 – zack

+0

看看我的編輯,讓我知道它是否有幫助。如果是這樣,請將我的答案標記爲正確。 :) –

+0

爲什麼我們必須使用tostring。有沒有其他方法可以訪問它們。請解釋一下,如果你不介意,你可以通過上述問題的評論,讓我知道我是否正確地實施它。 我需要使用類對象來實現arraylist的arraylist。 – zack