Java8 lamda表达式快速上手

1.对比着经典foreach

简单的循环

o相当于foreach中的临时变量,要遍历的list放在句首

list.foreach(o->{你要进行的操作});

复制代码
package com.company;

import com.entity.Goods;

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Goods> list = new ArrayList<Goods>();
        Goods goods1 = new Goods(1,"健力宝");
        Goods goods2 = new Goods(2,"伟哥");
        list.add(goods1);
        list.add(goods2);

        for(Goods o: list) { // 外部迭代
            System.out.println(o);
        }
        System.out.println("=============lambda表达式=============");
        list.forEach(o -> {System.out.println(o);});


    }
}
复制代码

 

2.foreach里面的if功能,即list.stream().filter().foreach()

复制代码
public List<Photo> buildPhoto() {
        List<Photo> target = new ArrayList<>();
        if (!photoList.isEmpty()) {
            // 根元素
            photoList.stream().filter(photo -> photo.getParentId() == 0).forEach(photo -> {  // 根元素
                List<Photo> children = getChildren(photo);
                photo.setChildren(children);
                target.add(photo);
            });
       // 相当于经典foreach的如下代码
            for (Photo photo:photoList){
                if (photo.getParentId() == 0){
                    List<Photo> children = getChildren(photo);
                    photo.setChildren(children);
                    target.add(photo);
                }
            }
        }
        return target;
    }
复制代码

 

如果想深究其原理 参考http://www.cnblogs.com/aoeiuv/p/5911692.html

posted @   Rest探路者  阅读(399)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
levels of contents
点击右上角即可分享
微信分享提示