首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java 8中迭代列表,并在迭代时调用另一个函数。

在java 8中迭代列表,并在迭代时调用另一个函数。
EN

Stack Overflow用户
提问于 2017-11-23 11:06:20
回答 2查看 5.4K关注 0票数 4

我对java 8很陌生。

我想使用java8,并希望在下面转换为java8。

代码语言:javascript
复制
List<Model> listModel;
for (Model model : listModel) 
        {
            try
            {
                new UpDateData().bankData(model.getCust_id(), model.getBank_id(), model.getDate());
            }
            catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }

        }

示范班::

代码语言:javascript
复制
public class Model 
{
    private  int cust_id;
    private  int bank_id;
    private  String date;
    //setter and getter
}

我的问题是如何在上面的列表中应用java 8特性,我想迭代并调用另一个函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-23 11:09:16

你只需要一个forEach

代码语言:javascript
复制
listModel.forEach(model -> {
    try {
        new UpDateData().bankData(model.getCust_id(), model.getBank_id(), model.getDate());
    } catch(){
         .... handle
    }
})
票数 6
EN

Stack Overflow用户

发布于 2017-11-23 11:45:15

forEach在java 8中使用,因为iteration.You可以使用Iterable.forEach()方法循环所有元素。

代码语言:javascript
复制
List<String> words = new ArrayList<>(Arrays.asList("the", "this", 
"that", "there"));
alphabets.forEach(s -> { System.out.println(s) }); //using lamda 

List<>是可迭代的类型,因此您可以直接在list.This上使用forEach,与以前的外部迭代相比,list.This称为内部迭代。这将由java自动转换为外部迭代。在lambda中,大括号是可选的,如果只有一条语句是强制性的。与循环中的旧if块相比,您可以在迭代器上使用过滤器。

代码语言:javascript
复制
alphabets.stream()
     .filter(s -> s.startsWith("the"))
     .forEach(System.out::println);
alphabets.stream()
     .filter(s -> s.length() > 3)
     .forEach(System.out::println);

上面的语法使用方法引用来打印元素。

https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47454018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档