Java8有哪些新特性:
- Lambda 表达式:Lambda 表达式允许在代码中直接定义匿名函数,简化了对函数式编程的支持。Lambda 表达式使用箭头操作符
->
将参数和函数体分开,使得代码更加简洁和灵活。 - Stream API:Stream API 提供了一种更简单的方法来处理集合数据。通过使用 Stream API,可以轻松地进行筛选、排序、映射等操作,从而更高效地处理数据。
- 接口中的默认方法:Java 8 允许在接口中定义默认方法,这些方法在实现类中可以被继承和覆盖。这一特性增加了接口的灵活性,使得接口可以包含更多的功能,而不仅仅是抽象方法的集合。
- 新的日期和时间API:Java 8 引入了一个新的日期和时间API,这个API提供了更多的功能,包括处理时区、时间间隔、日期时间格式化等。与旧的 Date 和 Calendar 类相比,新的 API 更加易用和强大。
- 方法引用:方法引用是 Lambda 表达式的一个简化形式,它允许直接引用已存在的方法或构造函数,而无需显式地编写 Lambda 表达式。方法引用使得代码更加简洁和易于阅读。
- Optional 容器类型:Optional 是一个可以为空的容器对象,它代表一个值存在或不存在。Optional 的引入可以避免空指针异常的发生,使得代码更加健壮和安全。
- 并行流:Java 8 引入了并行流的概念,使得可以在多线程环境下处理数据。通过并行流,可以更加高效地处理大规模数据,提高程序的性能。
- 函数式接口:函数式接口是只有一个抽象方法的接口。Lambda 表达式可以隐式地实现函数式接口,这使得函数式编程在 Java 中更加易于实现。
其中stream的常用api有以下这些:
中间操作(Intermediate Operations)
- filter(Predicate<? super T> predicate):返回由与此给定谓词匹配的此流的元素组成的流。
- map(Function<? super T, ? extends R> mapper):返回一个新流,其元素由将给定函数应用于此流的元素的结果组成。
- flatMap(Function<? super T, ? extends Stream<? extends R>> mapper):返回一个由给定函数应用于此流的元素所产生的流连接而成的新流。
- distinct():返回由该流的不同元素(根据 Object.equals(Object))组成的流。
- sorted():返回由此流的元素组成的流,根据其自然顺序进行排序。
- sorted(Comparator<? super T> comparator):返回由该流的元素组成的流,根据提供的 Comparator 进行排序。
- peek(Consumer<? super T> action):产生与当前流相同的结果,但在对每个元素执行给定操作后(在可能的消耗之前)。
- limit(long maxSize):返回此流的一个视图,其中前 n 个元素(或更少的元素,如果流中的元素少于 n)将被传递给流管道。
- skip(long n):跳过此流的 n 个元素。
终端操作(Terminal Operations)
- forEach(Consumer<? super T> action):对此流的每个元素执行给定的操作。
- toArray():返回一个包含此流元素的数组。
- collect(Collector<? super T, A, R> collector):使用提供的 Collector 对此流的元素进行归约操作。
- reduce(T identity, BinaryOperator<T> accumulator):对此流的元素执行归约操作,使用提供的标识值和累积器函数。
- reduce(BinaryOperator<T> accumulator):对此流的元素执行归约操作,使用提供的累积器函数。
- anyMatch(Predicate<? super T> predicate):如果此流的任何元素与提供的谓词匹配,则返回 true。
- allMatch(Predicate<? super T> predicate):如果此流的所有元素都与提供的谓词匹配,则返回 true。
- noneMatch(Predicate<? super T> predicate):如果此流没有元素与提供的谓词匹配,则返回 true。
- count():返回此流中的元素数。
- findFirst():返回此流的第一个元素(如果存在)。
- findAny():返回此流的任意元素(如果存在)。
- max(Comparator<? super T> comparator):返回此流中按特定顺序排序的最大元素。
- min(Comparator<? super T> comparator):返回此流中按特定顺序排序的最小元素。