[英]Java how to iterate through an ArrayList of an ArrayList?
我正在努力把握这个概念。 我之前从未使用过ArrayList
(只是数组)。
我有的是:
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这样[Tangled,Zooptopia,Finding Dory]并循环遍历该索引并将其添加到ArrayList
(而不是ArrayList
的ArrayList
)。
无需循环 - 您可以通过索引访问ArrayList
,然后使用addAll
方法将该位置的ArrayList
所有元素添加到结果中:
result.addAll(movies.get(userInput - 1));
使用以下代码,您可以遍历arrayList
private ArrayList<String> myArrayList = new ArrayList<>();
for(int i=0;i<myArrayList.size();i++){
myArrayList.get(i);
// Perform whatever operation here
}
如果它不起作用,请告诉我。 还有什么是给出的错误
ArrayList.get(int index)
方法可以帮助你。
ArrayList myList = fullList.get(1);
会给你你想要的列表,你可以迭代它,如:
for (String currString: myList){ //Do things with currString }
我希望我解释得很好:)
您应该学习如何使用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);
});
});
您可以使用for-each循环或simple 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();
}
输出:
声明您的变量如下
private ArrayList<String> arrayList = new ArrayList<>();
然后在方法中添加以下内容
for(int j=0; j < arrayList.size() ; j++){
arrayList.get(i);
// Your code goes here
}
这应该工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.