目录
1.for-增强for-forEach-stream.forEach遍历方法:
2.Optional解决判断Null为空的问题(NPE)——NullPointerException
表格一:Optional(T value)、empty()、of(T value)、ofNullable(T value)
表格二:orElse(T other)、orElseGet(Supplier other)、orElseThrow(Supplier exceptionSupplier)
表格三:map(Function mapper)、flatMap(Function> mapper)
表格四:isPresent()、ifPresent(Consumer consumer)
A: matcher.find()方法执行一次后直接提交,不等待全部提交。
1.for-增强for-forEach-stream.forEach遍历方法:
①for:
②增强for:
③forEach:
④stream.forEach:
1)循环方式:多线程方式。
2)适用情况:循环内处理很多事情时、循环调用远程接口/数据库时。
参考网址测试数据汇总:
测试条件 | doSome() | |||
不做任何事 | 等待1ms | |||
测试次数 | 1 | 2 | 3 | 4 |
数据条数 | 10 | 1,000,000 | 1,000,000 | 10,000 |
普通for循环用时 | 0 | 3 | 3 | 10025 |
增强for循环用时 | 0 | 10 | 7 | 10009 |
forEach循环用时 | 43 | 46 | 38 | 10067 |
forEach-Stream循环用时 | 6 | 33 | 31 | 1567 |
2.Optional解决判断Null为空的问题(NPE)——NullPointerException
①NPE问题出现的情况:
②NPE问题中Optional的作用:
优雅的 解决NPE异常的情况。
③Optional的API包含如下:
Optional() | empty() | of() | ofNullable() |
T value | T value | T value | |
orElse() | orElseGet() | orElseThrow() | |
T other | Supplier<? extends T> other | Supplier<? extends X> exceptionSupplier | |
isPresent() | ifPresent() | ||
Consumer<? super T> consumer |
map() | flatMap() |
Function<? super T, ? extends U> mapper | Function<? super T, Optional<U>> mapper |
④整理的表格:
表格一:Optional(T value)、empty()、of(T value)、ofNullable(T value)
empty() | of(T value) | ofNullable(T value) | |