Java8:从List中提取属性值的实战教程
版权申诉
5星 · 超过95%的资源 40 浏览量
更新于2024-09-12
2
收藏 90KB PDF 举报
"Java8从list集合中提取特定属性值的集合操作实例"
在Java8中,处理集合数据变得更加高效和简洁,特别是通过引入流(Stream)API。本案例重点讲解了如何利用Java8的流API从一个`List<Order>`集合中提取`Order`对象的特定属性,如订单编号(orderNo)和ID(id),并将这些属性值转化为新的集合。
首先,我们创建了一个`List<Order>`,其中`Order`类有两个属性:`id`和`orderNo`。代码如下:
```java
List<Order> list = new ArrayList<>();
Order o1 = new Order("1", "MCS-2019-1123");
list.add(o1);
Order o2 = new Order("2", "MCS-2019-1124");
list.add(o2);
Order o3 = new Order("3", "MCS-2019-1125");
list.add(o3);
```
接着,我们使用流API的`map`方法来映射每个`Order`对象的`orderNo`属性,并通过`collect`方法收集这些值到一个新的`List<String>`中:
```java
List<String> orderNoList = list.stream()
.map(Order::getOrderNo)
.collect(Collectors.toList());
System.out.println("输出订单号集合:" + orderNoList);
```
同样,我们可以提取`id`属性:
```java
List<String> idList = list.stream()
.map(Order::getId)
.collect(Collectors.toList());
System.out.println("输出ID集合:" + idList);
```
执行上述代码,将分别输出订单号和ID的集合:
```
输出订单号集合:[MCS-2019-1123, MCS-2019-1124, MCS-2019-1125]
输出ID集合:[1, 2, 3]
```
`Order`类的定义如下:
```java
public class Order {
String id;
String orderNo;
public Order(String id, String orderNo) {
this.id = id;
this.orderNo = orderNo;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
}
```
在Java8中,`map`方法用于对集合中的每个元素应用一个函数,然后返回一个新的流,包含应用函数后的结果。而`collect`方法用于将流转换为其他形式,如集合、数组等。`Collectors.toList()`则是`collect`方法的一个参数,它会将流中的元素收集到一个`ArrayList`中。
除了这个基本的提取属性值的案例,Java8的流API还提供了多种强大的操作,如过滤(`filter`)、排序(`sorted`)、并行处理(`parallelStream`)等,可以方便地对列表进行筛选、排序等复杂操作,大大简化了集合数据处理的代码。在实际开发中,熟练掌握这些特性能够提高代码的可读性和效率。
2020-08-28 上传
2023-06-01 上传
2023-06-01 上传
2023-06-01 上传
2023-02-16 上传
2024-09-13 上传
2023-06-08 上传
weixin_38666114
- 粉丝: 7
- 资源: 971
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦