Java Stream的使用

Java Streams API 是 Java 8 中引入的一套新的抽象,它允许以声明性方式处理数据集合。通过 Java Stream API,你可以对集合进行复杂的查询和数据处理,而无需明确地管理迭代数据集合的过程。

首先,要使用 Stream,你需要一个数据源,比如集合、数组或者I/O channel。然后,你对这个数据源执行一系列操作,这些操作可以是中间操作(如 filter, map, sorted 等)或者终端操作(如 collect, forEach, reduce 等)。

下面是一些 Java Stream API 的基本使用示例:

创建 Stream

// 从集合创建 Stream
List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
Stream<String> myStream = myList.stream();

// 从数组创建 Stream
String[] myArray = new String[]{"a1", "a2", "b1", "c2", "c1"};
Stream<String> myStreamFromArray = Arrays.stream(myArray);

// 创建无限流
Stream<Integer> infiniteStream = Stream.iterate(0, n -> n + 1);

中间操作

// filter 方法用于过滤出符合条件的元素
Stream<String> streamWithFilter = myStream.filter(s -> s.startsWith("c"));

// map 方法用于将元素按照给定的函数进行转换
Stream<String> upperCasedStream = myStream.map(String::toUpperCase);

// sorted 方法用于对元素进行排序
Stream<String> sortedStream = myStream.sorted();

终端操作

// forEach 用来遍历 Stream 中的元素
myStream.forEach(System.out::println);

// collect 方法用来将 Stream 转换成其他形式,比如集合
List<String> filteredList = myStream.filter(s -> s.startsWith("a"))
                                    .collect(Collectors.toList());

// reduce 方法用来进行归约操作,比如求和、求最大值或最小值
Optional<String> concatenatedString = myStream.reduce((s1, s2) -> s1 + "#" + s2);

组合使用

// 将字符串转换成大写并过滤掉以"C"开头的字符串,然后打印出来
myList.stream()
      .map(String::toUpperCase)
      .filter(s -> !s.startsWith("C"))
      .forEach(System.out::println);

这只是流操作的冰山一角。Java Stream API 非常强大,有很多功能和操作可以使用,比如 flatMap、distinct、limit、peek 等。正确地利用 Streams 可以编写出简洁、高效和易于维护的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值