Java8 Lambda代码备份

简单研究了一下,贴出来,相当于笔记

复制代码
import java.lang.reflect.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.google.gson.Gson;

public class Hello {

    public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {

        try {
            // Java中Lambda表达式
            List<Student> list = new ArrayList<Student>();
            list.add(new Student("zhangsan", 20, "2"));
            list.add(new Student("lisi", 22, "2"));
            list.add(new Student("zhangjie", 25, "3"));
            list.add(new Student("zhangjie", 40, "3"));

            // 循环赋值,增加2岁
            list.forEach(item -> item.setAge(item.getAge() + 2));

            // 循环输出年龄
            list.forEach(item -> System.out.println(item.getAge()));

            // 总数、最大值、最小值
            int ages = list.stream().mapToInt(f -> f.getAge()).sum();
            int maxAge = list.stream().mapToInt(f -> f.getAge()).max().getAsInt();
            System.err.println("总年龄是:" + ages);
            System.err.println("最大年龄是:" + maxAge);

            // 分组
            list.stream().collect(Collectors.groupingBy(Student::getName, Collectors.toList()))//
                    .forEach((name, fooListByName) -> System.out.println(name + " " + new Gson().toJson(fooListByName)));

            list.stream().collect(Collectors.groupingBy(Student::getName, Collectors.counting()))//
                    .forEach((name, count) -> System.out.println(name + " " + count));

            list.stream().collect(Collectors.groupingBy(Student::getName, Collectors.toList()))//
                    .forEach((name, ls) -> System.out.println("姓名:" + name + ",最大年龄" + ls.stream().mapToInt(f -> f.getAge()).max().getAsInt()));
                    
            //分页
            List<Student> arr = list.stream().skip(0).limit(5).collect(Collectors.toList());
            
            //where查询
            List<TaskPro> list= taskPros.stream().filter(f->f.getFirmId().equals("199989494")&&//
                        f.getTaskId().equals("1000")).collect(Collectors.toList());
        } finally {
        }

    }

}
复制代码

 

posted @   段江涛IT  阅读(286)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2016-07-07 C#代码安装、卸载、监控Windows服务
页脚HTML代码
点击右上角即可分享
微信分享提示