1.简介
集合更多的是数据结构的封装,主要用来存储数据,如果需要对数据进行多次加工(比如:筛选,排序),可以使用StreamAPI。
2创建
1)通过Collection接口
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class StreamExample {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange");
// 通过 stream() 方法创建流
Stream<String> stream = list.stream();
// 使用流操作(例如打印元素)
stream.forEach(System.out::println);
}
}
2)使用Arrays.stream(T[]array)
import java.util.Arrays;
import java.util.stream.Stream;
String[] array = {"apple", "banana", "orange"};
Stream<String> stream = Arrays.stream(array);
stream.forEach(System.out::println);
3)静态方法创建流
import java.util.stream.Stream;
// 创建包含多个元素的流
Stream<String> stringStream = Stream.of("A", "B", "C");
// 创建包含单个元素的流
Stream<Integer> singleElementStream = Stream.of(1);
3分类
1)中间操作:每次操作返回一个新的流,可以有多个
2)终端操作:每个流只能进行一次终端操作,结束后,无法使用,会产生一个新的值或集合
4特性
1)不存储数据
2)不会改变数据源
3)具有延迟执行特性
5与集合的差别
1)集合中的元素是已经计算好的;流是在用户需要的时候才会计算
2)集合:外部迭代;流:内部迭代
6Optional
常用方法
1)empty():创建一个空的Optional
2)of(T t):
Optional<String> optional = Optional.ofNullable("Hello");
if (optional.isPresent()) {
System.out.println(optional.get());
}
3)Optional<String> optional = Optional.of("World");
String value = optional.get();
4)Optional<String> optional = Optional.empty();
String value = optional.orElse("Default");
5)Optional<String> optional = Optional.of("Hello");
optional.ifPresent(val -> System.out.println(val));
6)Optional<String> optional = Optional.empty();
String value = optional.orElseThrow(() -> new IllegalArgumentException("Value not present"));
5899

被折叠的 条评论
为什么被折叠?



