遍历对象列表并为每个对象运行一个函数-Java

时间:2018-07-10 01:28:45

标签: java arrays list

我想知道如何为数组(或其他列表类型)中的每个对象运行特定功能的最简单方法

我的目标是能够创建对象列表,并使每个对象在通过迭代器时运行特定的功能。

我在arraylist上尝试过for循环

for (int i = 0; i < testList.size(); i++)
    {
        this  = textList.get(i);
        this.exampleFunction();
    }

但这给了我一个“预期变量”错误

2 个答案:

答案 0 :(得分:3)

假设您使用的是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();
}

答案 1 :(得分:0)

有多种方法可以遍历列表,但是我个人最容易找到的是这样的:

假设您的列表包含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);
}

因此,您的用例确实确定了您可以采用的理想方法。