簡體   English   中英

遍歷對象列表並為每個對象運行一個函數-Java

[英]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.

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