Java如何遍历ArrayList的ArrayList?

时间:2018-03-03 19:34:33

标签: java list arraylist

我正在努力把握这个概念。我以前从未使用ArrayList s(只是数组)。

我拥有的是:

ArrayList<ArrayList<String>> movies = new ArrayList<ArrayList<String>>();

这将是什么样子或我想象的方式:

[[Ratatouille, A Bug's Life], [Tangled, Zootopia, Finding Dory], [Harry Potter]]

并说userInput = 2;那么我会从用户输入中减去1(因为我知道Array和ArrayList的索引为0)所以userInput = 1; (基于他们的多选选择,不是很重要)。

然后我想要做的是将索引1这样[纠结,Zooptopia,发现Dory]并循环遍历该索引并将其添加到ArrayList(而不是ArrayList {{1} }})。

5 个答案:

答案 0 :(得分:1)

使用以下代码,您可以遍历arrayList

private ArrayList<String> myArrayList = new ArrayList<>();
for(int i=0;i<myArrayList.size();i++){
myArrayList.get(i);
// Perform whatever operation here
}

如果它不起作用,请告诉我。以及给出的错误是什么

答案 1 :(得分:0)

ArrayList.get(int index)方法可以帮助您。

ArrayList myList = fullList.get(1); 会给你你想要的列表,你可以迭代它:

for (String currString: myList){ //Do things with currString }

我希望我解释得很好:)。

答案 2 :(得分:0)

您应该学习如何使用Java Lambdas。您可以使用lambda迭代ArrayList,因为ArrayLists是Iterable。

ArrayList<ArrayList<String>>arrayListofarrayList  = new ArrayList<ArrayList<String>>();
arrayListofarrayList.forEach((arrayList) -> {System.out.println(arrayList.get(1));});

ArrayList<ArrayList<String>>arrayListofarrayList  = new ArrayList<ArrayList<String>>();
arrayListofarrayList.forEach((arrayList) -> {\*code here!*\});

如果你正在尝试嵌套迭代,你可以:

ArrayList<ArrayList<String>>arrayListofarrayList  = new ArrayList<ArrayList<String>>();
arrayListofarrayList.forEach((arrayList) -> {
arrayList.forEach((item) -> {
    System.out.println(item);
    });
});

答案 3 :(得分:0)

您可以使用 for-each 循环或简单的 for 循环来打印ArrayList的ArrayList中的元素。例如,

ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);list1.add(2);
ArrayList<Integer> list2 = new ArrayList<>();
list2.add(3);list2.add(4);
ArrayList<Integer> list3 = new ArrayList<>();
list3.add(5);list3.add(6);

ArrayList<ArrayList<Integer>> listOfList = new ArrayList<>();
listOfList.add(list1);
listOfList.add(list2);
listOfList.add(list3);

// Printing elements using for-each loop
for(ArrayList<Integer> eachList : listOfList){
  for(Integer elementInList : eachList){
    System.out.print(elementInList + "\t");
  }
  System.out.println();
}

// Printing elements using for loop
for(int i = 0;i < listOfList.size();i++){
  ArrayList<Integer> eachList = listOfList.get(i);
  for(int j = 0;j < eachList.size();j++){
    System.out.print(eachList.get(j) + "\t");
  }
  System.out.println();
}

输出:

enter image description here

答案 4 :(得分:0)

将您的变量声明为以下

private ArrayList<String> arrayList = new ArrayList<>();

然后在方法中添加以下

for(int j=0; j < arrayList.size() ; j++){
arrayList.get(i);
 // Your code goes here
}

这应该有效