Java8中 Stream API的用法
2023-12-13 17:01:17
Java 8中引入的 Stream API 是一种高效且简洁的数据处理方式,特别适合用于集合的操作。它允许以声明式的方式处理数据,支持函数式编程的操作,如映射、过滤、排序等。以下是一个使用 Stream API 的示例:
假设你有一个商品列表,每个商品都有名称和价格。现在你想找出所有价格超过一定值的商品,并按价格排序。
首先,定义一个商品类(Product):
public class Product {
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
// 省略 getter 和 setter 方法
@Override
public String toString() {
return "Product{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
然后,创建一个商品列表并使用 Stream API 进行处理:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Product> products = Arrays.asList(
new Product("Apple", 1.20),
new Product("Banana", 2.40),
new Product("Orange", 1.80),
new Product("Watermelon", 4.80),
new Product("Papaya", 3.50)
);
double priceThreshold = 2.0;
List<Product> filteredProducts = products.stream()
.filter(p -> p.getPrice() > priceThreshold) // 过滤操作,选出价格超过阈值的商品
.sorted((p1, p2) -> Double.compare(p1.getPrice(), p2.getPrice())) // 排序操作,根据价格排序
.collect(Collectors.toList()); // 将结果收集为一个列表
filteredProducts.forEach(System.out::println); // 打印结果
}
}
在这个例子中:
- 使用
stream()
方法创建了一个流。 - 通过
filter()
方法过滤出价格超过指定阈值的商品。 - 使用
sorted()
方法按价格对商品进行排序。 - 通过
collect()
方法将流中的元素收集到一个新的列表中。 - 最后,使用
forEach()
方法遍历并打印列表中的每个商品。
这个例子展示了如何使用 Stream API 对集合进行处理,通过几个简单的链式调用,就能完成对数据的过滤、排序和收集等操作,代码既简洁又易于理解。
文章来源:https://blog.csdn.net/m0_54187478/article/details/134839881
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!