Java基础,每日两问(5.1.2)

Java8有哪些新特性:

  1. Lambda 表达式:Lambda 表达式允许在代码中直接定义匿名函数,简化了对函数式编程的支持。Lambda 表达式使用箭头操作符 -> 将参数和函数体分开,使得代码更加简洁和灵活。
  2. Stream API:Stream API 提供了一种更简单的方法来处理集合数据。通过使用 Stream API,可以轻松地进行筛选、排序、映射等操作,从而更高效地处理数据。
  3. 接口中的默认方法:Java 8 允许在接口中定义默认方法,这些方法在实现类中可以被继承和覆盖。这一特性增加了接口的灵活性,使得接口可以包含更多的功能,而不仅仅是抽象方法的集合。
  4. 新的日期和时间API:Java 8 引入了一个新的日期和时间API,这个API提供了更多的功能,包括处理时区、时间间隔、日期时间格式化等。与旧的 Date 和 Calendar 类相比,新的 API 更加易用和强大。
  5. 方法引用:方法引用是 Lambda 表达式的一个简化形式,它允许直接引用已存在的方法或构造函数,而无需显式地编写 Lambda 表达式。方法引用使得代码更加简洁和易于阅读。
  6. Optional 容器类型:Optional 是一个可以为空的容器对象,它代表一个值存在或不存在。Optional 的引入可以避免空指针异常的发生,使得代码更加健壮和安全。
  7. 并行流:Java 8 引入了并行流的概念,使得可以在多线程环境下处理数据。通过并行流,可以更加高效地处理大规模数据,提高程序的性能。
  8. 函数式接口:函数式接口是只有一个抽象方法的接口。Lambda 表达式可以隐式地实现函数式接口,这使得函数式编程在 Java 中更加易于实现。

其中stream的常用api有以下这些:

中间操作(Intermediate Operations)

  1. filter(Predicate<? super T> predicate):返回由与此给定谓词匹配的此流的元素组成的流。
  2. map(Function<? super T, ? extends R> mapper):返回一个新流,其元素由将给定函数应用于此流的元素的结果组成。
  3. flatMap(Function<? super T, ? extends Stream<? extends R>> mapper):返回一个由给定函数应用于此流的元素所产生的流连接而成的新流。
  4. distinct():返回由该流的不同元素(根据 Object.equals(Object))组成的流。
  5. sorted():返回由此流的元素组成的流,根据其自然顺序进行排序。
  6. sorted(Comparator<? super T> comparator):返回由该流的元素组成的流,根据提供的 Comparator 进行排序。
  7. peek(Consumer<? super T> action):产生与当前流相同的结果,但在对每个元素执行给定操作后(在可能的消耗之前)。
  8. limit(long maxSize):返回此流的一个视图,其中前 n 个元素(或更少的元素,如果流中的元素少于 n)将被传递给流管道。
  9. skip(long n):跳过此流的 n 个元素。

终端操作(Terminal Operations)

  1. forEach(Consumer<? super T> action):对此流的每个元素执行给定的操作。
  2. toArray():返回一个包含此流元素的数组。
  3. collect(Collector<? super T, A, R> collector):使用提供的 Collector 对此流的元素进行归约操作。
  4. reduce(T identity, BinaryOperator<T> accumulator):对此流的元素执行归约操作,使用提供的标识值和累积器函数。
  5. reduce(BinaryOperator<T> accumulator):对此流的元素执行归约操作,使用提供的累积器函数。
  6. anyMatch(Predicate<? super T> predicate):如果此流的任何元素与提供的谓词匹配,则返回 true。
  7. allMatch(Predicate<? super T> predicate):如果此流的所有元素都与提供的谓词匹配,则返回 true。
  8. noneMatch(Predicate<? super T> predicate):如果此流没有元素与提供的谓词匹配,则返回 true。
  9. count():返回此流中的元素数。
  10. findFirst():返回此流的第一个元素(如果存在)。
  11. findAny():返回此流的任意元素(如果存在)。
  12. max(Comparator<? super T> comparator):返回此流中按特定顺序排序的最大元素。
  13. min(Comparator<? super T> comparator):返回此流中按特定顺序排序的最小元素。
  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W a C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值