[英]Iterate through an list of objects and run a function for each - Java
我想知道如何為數組(或其他列表類型)中的每個對象運行特定功能的最簡單方法
我的目標是能夠創建對象列表,並使每個對象在通過迭代器時運行特定功能。
我在arraylist上嘗試過for循環
for (int i = 0; i < testList.size(); i++)
{
this = textList.get(i);
this.exampleFunction();
}
但這給了我一個“預期變量”錯誤
假設您使用的是Java 8+,並且您有一個Collection<TypeInList>
,則可以調用Collection.stream()
並對其進行forEach
。 喜歡,
testList.stream().forEach(TypeInList::function);
您當前的做法是試圖做的事情this
是無法做到的。 它可以像這樣固定
for (int i = 0; i < testList.size(); i++)
{
TypeInList that = testList.get(i); // this is a reserved word.
that.function();
}
要么
for (TypeInList x : testList) {
x.function();
}
有多種遍歷列表的方法,但是我個人最容易找到的是這樣的:
假設您的列表包含String對象,例如:
List<String> list = new ArrayList();
list.add("Hello");
list.add("World");
for(String current : list){
System.out.println(current);
}
該循環將迭代兩次,控制台將輸出以下內容:
Hello
World
這種方法不依賴索引(就像您在問題中的使用方式一樣),因此,我發現它很容易用於遍歷單個列表。
但是,缺點是如果您要遍歷2個單獨的列表,則缺少索引會使其變得更加復雜。 遍歷多個列表的更簡單方法是使用傳統方法,如下所示:
for(int i=0; i<list.size(); i++){
int x = list1.get(i);
int y = list2.get(i);
}
因此,您的用例確實確定了您可以采用的理想方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.