Stream与Optional 类得方法详细解读
时间: 2024-04-05 21:35:10 浏览: 51
java源码解读-JavaSource:Java源码解读
Stream类的方法:
1. filter(Predicate<T> predicate):过滤Stream中的元素,返回一个新的Stream。
2. map(Function<T, R> mapper):对Stream中的元素进行映射,返回一个新的Stream。
3. sorted() / sorted(Comparator<? super T> comparator):对Stream中的元素进行排序,返回一个新的Stream。
4. distinct():对Stream中的元素进行去重,返回一个新的Stream。
5. limit(long maxSize):限制Stream中元素的数量,返回一个新的Stream。
6. skip(long n):跳过Stream中的前n个元素,返回一个新的Stream。
7. forEach(Consumer<? super T> action):对Stream中的每个元素执行指定的操作。
8. reduce(T identity, BinaryOperator<T> accumulator):对Stream中的元素进行累加操作,返回一个Optional。
9. collect(Collector<? super T, A, R> collector):将Stream中的元素收集到一个集合中。
Optional类的方法:
1. of(T value):创建一个包含指定值的Optional对象。
2. ofNullable(T value):创建一个包含指定值的Optional对象,如果值为null,则返回一个空Optional。
3. isPresent():判断Optional中是否包含值。
4. get():获取Optional中的值,如果值为null,则会抛出NoSuchElementException异常。
5. orElse(T other):获取Optional中的值,如果值为null,则返回指定的默认值。
6. orElseGet(Supplier<? extends T> other):获取Optional中的值,如果值为null,则返回由指定的Supplier生成的默认值。
7. orElseThrow(Supplier<? extends X> exceptionSupplier):获取Optional中的值,如果值为null,则抛出由指定的Supplier生成的异常。
综上所述,Stream和Optional都提供了一系列非常实用的方法,可以大大简化我们对数据的处理,提高代码的可读性和维护性。在实际开发中,我们应该根据具体的需求选择合适的方法,以达到最佳的效果。
阅读全文