jdk8的新特性

本文介绍了Java 8的新特性,重点讲解了Lambda表达式的三种形式:带参数无返回值、无参数有返回值、带参数有返回值,以及Stream流的使用,包括流的分组、排序、过滤、转换等操作。通过示例展示了如何使用Collectors.groupingBy进行数据分组,并探讨了Stream流如何提升代码简洁性和执行效率。同时提到了Optional对象用于简化判空操作和方法引用的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.内部类

 

 

 二.lambda表达式

1.带参数无返回值

2.无参数有返回值

3.带参数有返回值

 三.stream流(大大提升了代码的书写简洁)

流的分组:

Collectors.groupingBy

接下来这个示例,将会按年龄对所有人进行分组:

Map<Integer, List<Person>> personsByAge = persons
    .stream()
    .collect(Collectors.groupingBy(p -> p.age)); // 以年龄为 key,进行分组

personsByAge
    .forEach((age, p) -> System.out.format("age %s: %s\n", age, p));

// age 18: [Max]
// age 23: [Peter, Pamela]
// age 12: [David]
 

流的排序和过滤:

Stream.of("d2", "a2", "b1", "b3", "c")
    .sorted((s1, s2) -> {
        System.out.printf("sort: %s; %s\n", s1, s2);
        return s1.compareTo(s2); // 排序
    })
    .filter(s -> {
        System.out.println("filter: " + s);
        return s.startsWith("a"); // 过滤出以 a 为前缀的元素
    })
    .map(s -> {
        System.out.println("map: " + s);
        return s.toUpperCase(); // 转大写
    })
    .forEach(s -> System.out.println("forEach: " + s)); // for 循环输出
 

将流中的对象转换为另一种类型

FlatMap 或者 map

Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合_云深i不知处的博客-优快云博客

Stream流
在不是很了解stream流时,我们常用的是for循环去对集合进行操作。而现如今,随着stream流的普及,大家可以尝试着用stream流去代替for循环,好处有二,第一,stream流的执行效率要高于for循环,第二,用stream流比用for循环显得水平高点,代码更简洁好看一些。第三,stream流可以做筛选,不必通过SQL语句进行筛选。

 代码参考挺不错的

java代码优化之stream流+判空_呀呼嘿—yara的博客-优快云博客_stream判空

三.1.获取stream流 

 

 三.2  stream流的中间方法

 三.3 stream流的终结操作

 三.4    stream流不能直接修改数据源中的数据(记住........)

三.5  stream流的收集操作

 

 

四.链式编程

五.泛型(ArrayList就是一个泛型类可以参考源码)

 

 五.1 自定义泛型类(泛型给里边可以存任意数据类型,创建对象的时候可以确定类型)

 五.2 自定义泛型方法(方法在被调用的时候确定类型)

 五.3泛型接口

 五.4类型通配符

 

六,Optional对象判空

JDK1.8新特性 Optional判空详解,简化判空操作_Thinkingcao的博客-优快云博客_optional判空

七,方法的引用    (  :: )

十九、Java8新特性——方法引用【黑马JavaSE笔记】_-BoBooY-的博客-优快云博客

000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值