簡體   English   中英

Java如何遍歷ArrayList的ArrayList?

[英]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 (而不是ArrayListArrayList )。

無需循環 - 您可以通過索引訪問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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM