【发布时间】:2014-03-26 03:35:47
【问题描述】:
我想使用迭代器遍历二维 ArrayList,其中包括 String 对象。我还想以一种让我选择是先水平(行)还是垂直(列)使用boolean 值进行迭代的方式进行迭代。如何在 java 中实现这个?
到目前为止我已经尝试过。
public class IterateThis implements Iterator<String>{
ArrayList<ArrayList<String>> array;
public IterateThis(){
array = new ArrayList<ArrayList<String>>();
array.add(new ArrayList<String>());
array.add(new ArrayList<String>());
array.add(new ArrayList<String>());
array.get(0).add("1");
array.get(0).add("2");
array.get(0).add("2");
array.get(1).add("4");
array.get(1).add("5");
array.get(1).add("6");
}
Iterator<String> it = array.iterator(); //This gives me an error...why?
我不知道如何实现boolean 值。
【问题讨论】:
-
我没有看到你所尝试的布尔值......
-
您在那里发现了什么类型的错误?请在此处提及错误。 “array”是 ArrayList
的列表。所以当你创建一个迭代器时。它应该是相同类型的列表。 -
“这给了我一个错误...为什么?”因为
array.iterator()不是Iterator<String>而是Iterator<List<String>>。 -
既然你的类实现了Iterator,你就得实现IterateThis类的iterate方法,并将二维迭代的逻辑放在该方法中。
标签: java arrays arraylist iterator