你可以給出任何合理的例子,如ArrayList<ArrayList<E>>
,比如聲明,初始化,添加元素並迭代它們。這是在Java中獲得二維數組行爲的方法之一嗎?ArrayList的用法<ArrayList<E>>
1
A
回答
6
是的,ArrayList<ArrayList<E>>
類似於E
(E[][]
)的二維陣列。它具有在使用List
和在Java中使用數組之間的所有常見區別(List
是更高級別的API,支持調整大小,在任意位置添加元素...)。
你千萬不要把它任何不同於正常List
,不同的是它包含的元素實際上是其他List
對象:
初始化:
ArrayList<ArrayList<E>> listOfLists = new ArrayList<ArrayList<E>>();
疊代:
for (ArrayList<E> innerList : listOfLists) { doSomethingWithInnerList(innerList); }
添加到它:
ArrayList<E> newInnerList = new ArrayList<E>(); // add stuff to newInnerList listOfLists.add(newInnerList);
0
ArrayList的用於保存對象數組。另一方面它可以有重複的值。當你需要快速插入/刪除時,你可以使用它。它按照輸入的順序保存值。例如
List<String> ls= new ArrayList<String>();
ls.add("foo");
ls.add("bar");
for(String val:ls){
System.out.println("Value :" + val);
}
1
我要添加到約阿希姆·紹爾的答案的唯一的事情是肯定的,一個ArrayList<ArrayList<E>>
可以類似於E的二維數組(E[][]
)有一個額外的扭曲(除一維數組和列表之間的所有常見區別):
使用列表列表,可以使「鋸齒狀」數組等價。並非所有內部列表都需要具有相同的size()
,而在二維數組中,根據定義,E[][]
的所有「行」具有相同的長度。這是「矩形」。列表清單不一定是矩形的;它可以是鋸齒狀的。
相關問題
- 1. ArrayList <Object <ArrayList <Object> >>
- 2. MalformedParameterizedTypeException當使用ArrayList <ArrayList<>>
- 3. ArrayList的問題<ArrayList <String>>
- 4. ArrayList <ArrayList <String>> vs ArrayList <Object>
- 5. 轉換ArrayList <ArrayList <String>>「返回」ArrayList <String>
- 6. ArrayList的<String>方法
- 7. 無法從ArrayList中<Parcelable>轉換爲ArrayList的<ClSprite>
- 8. ArrayList <ArrayList <Integer>> IndexOutOfBoundsException
- 9. ArrayList <> vs ArrayList <Integer>
- 10. Transpose ArrayList <ArrayList <String>> in Java
- 11. 無法將ArrayList <String>轉換爲ArrayList <java.lang.String>
- 12. 方法從ArrayList中<Float>和ArrayList <Integer>
- 13. 無法將ArrayList <subtype>轉換爲ArrayList <type>
- 14. Java的可迭代<Iterable<T>>到ArrayList的<ArrayList<T>>
- 15. 如何聲明HashMap <String,ArrayList <ArrayList <String> >>?
- 16. Java將ArrayList <Integer>添加到ArrayList <ArrayList <Integer>>替換ArrayList的ArrayList的所有元素
- 17. 使用ArrayList的<Object>
- 18. 如何將ArrayList <Object>轉換爲ArrayList <String>或ArrayList <Timestamp>?
- 19. 爲什麼我們寫ArrayList <ArrayList <Integer>> list = new ArrayList <>();
- 20. static Hashtable <Leader,ArrayList <Integer>> assignedLeader = new Hashtable <Leader,ArrayList <Integer>>(20);
- 21. ArrayList <Integer>使用get/remove方法
- 22. ArrayList <?>,ArrayList,ArrayList <Object>有什麼區別?
- 23. 不能通過的ArrayList <Impl>到方法採取的ArrayList <Interface>
- 24. 新的ArrayList <Class>()或新的ArrayList <>()在Java中?
- 25. 捆綁的ArrayList <ArrayList的<Integer>>
- 26. 鑄造的ArrayList <SomeClass>到的ArrayList <SomeInterface>
- 27. 轉換的ArrayList <Object>到ArrayList的<AnotherType>
- 28. 轉換的ArrayList <Long>到ArrayList的<String>與循環
- 29. 訪問的ArrayList <ArrayList的<SomeObject>>元素
- 30. 初始化的ArrayList <ArrayList的<Integer>>