为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

饮歌长啸 2021-04-28 21:41:39
我想知道如何为数组(或其他列表类型)中的每个对象运行特定功能的最简单方法我的目标是能够创建对象列表,并使每个对象在通过迭代器时运行特定功能。我已经在arraylist上尝试过for循环for (int i = 0; i < testList.size(); i++)    {        this  = textList.get(i);        this.exampleFunction();    }但这给了我一个“预期变量”错误
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超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();

}


查看完整回答
反对 回复 2021-05-19
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

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


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

}

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


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信