猿问

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

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


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


我已经在arraylist上尝试过for循环


for (int i = 0; i < testList.size(); i++)

    {

        this  = textList.get(i);

        this.exampleFunction();

    }

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


饮歌长啸
浏览 191回答 2
2回答

子衿沉夜

假设您使用的是Java 8+,那么Collection<TypeInList>您可以调用Collection.stream()并对此进行forEach操作。喜欢,testList.stream().forEach(TypeInList::function);您当前的方法是尝试做this无法做到的事情。它可以像这样固定for (int i = 0; i < testList.size(); i++){&nbsp; &nbsp; TypeInList that = testList.get(i); // this is a reserved word.&nbsp; &nbsp; that.function();}或者for (TypeInList x : testList) {&nbsp; &nbsp; x.function();}

尚方宝剑之说

遍历列表有多种方法,但是我个人最容易找到的是这样的:假设您的列表包含String对象,例如:List<String> list = new ArrayList();list.add("Hello");list.add("World");for(String current : list){&nbsp; &nbsp; System.out.println(current);}该循环将迭代两次,控制台将输出以下内容:HelloWorld这种方法不依赖索引(因为您在问题中的使用方式),因此,我发现它很容易用于遍历单个列表。但是,缺点是,如果您要遍历2个单独的列表,则缺少索引会使其变得更加复杂。遍历多个列表的更简单方法是使用传统方法,如下所示:for(int i=0; i<list.size(); i++){&nbsp; &nbsp; int x = list1.get(i);&nbsp; &nbsp; int y = list2.get(i);}因此,您的用例确实确定了您可以采用的理想方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答