你可以给出任何合理的例子,如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 <ArrayList <String>> vs ArrayList <Object>
- 2. 转换ArrayList <ArrayList <String>>“返回”ArrayList <String>
- 3. ArrayList <ArrayList <Integer>> IndexOutOfBoundsException
- 4. Transpose ArrayList <ArrayList <String>> in Java
- 5. ArrayList <> vs ArrayList <Integer>
- 6. 方法从ArrayList中<Float>和ArrayList <Integer>
- 7. 无法将ArrayList <subtype>转换为ArrayList <type>
- 8. Java的可迭代<Iterable<T>>到ArrayList的<ArrayList<T>>
- 9. 如何声明HashMap <String,ArrayList <ArrayList <String> >>?
- 10. 使用ArrayList的<Object>
- 11. 为什么我们写ArrayList <ArrayList <Integer>> list = new ArrayList <>();
- 12. ArrayList <Integer>使用get/remove方法
- 13. 不能通过的ArrayList <Impl>到方法采取的ArrayList <Interface>
- 14. 新的ArrayList <Class>()或新的ArrayList <>()在Java中?
- 15. 访问的ArrayList <ArrayList的<SomeObject>>元素
- 16. 初始化的ArrayList <ArrayList的<Integer>>
- 17. 转换的ArrayList <Object>到ArrayList的<AnotherType>
- 18. 捆绑的ArrayList <ArrayList的<Integer>>
- 19. 转换的ArrayList <Long>到ArrayList的<String>与循环
- 20. 将ArrayList <SomeClass>传递给参数ArrayList中的方法<Comparable>
- 21. 初始化ArrayList <ArrayList <Int>>在kotlin中的大小
- 22. ArrayList <String>和ArrayList <>之间的区别?
- 23. ArrayList的<String>到ArrayList中<string>在Java
- 24. 获取ArrayList的值(String)<ArrayList <String>>();在Java中
- 25. ArrayList <ArrayList <String>> webservice的参数
- 26. 覆盖ArrayList的add方法<Integer>
- 27. ArrayList <String> NullPointerException
- 28. ArrayList中<String>
- 29. HashMap <String,ArrayList <Objects>>
- 30. 如何将ArrayList()或ArrayList <String>中的对象转换为ArrayList <Integer>?