Java 8 Stream API 过滤和转换 PortainerService 对象为 PortainerServiceSchoolVo
假设有一个 'PortainerService' 类代表服务,其属性包括 'id'、'name'、'school',我们想要通过 Java 8 的 Stream API,对一组 'PortainerService' 对象进行过滤,并将过滤后的结果转换为 'PortainerServiceSchoolVo' 对象。
首先,我们需要创建 'PortainerServiceSchoolVo' 类,其属性与 'PortainerService' 类的属性相对应:
public class PortainerServiceSchoolVo {
private int id;
private String name;
private String school;
// 构造方法、getter和setter省略
}
然后,我们可以使用 'Stream' 的 'filter' 方法对 'PortainerService' 对象进行过滤,并使用 'map' 方法将过滤后的结果转换为 'PortainerServiceSchoolVo' 对象。最后,我们可以使用 'collect' 方法将转换后的结果收集到一个列表中。
以下是示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<PortainerService> services = new ArrayList<>();
services.add(new PortainerService(1, 'Service 1', 'School A'));
services.add(new PortainerService(2, 'Service 2', 'School A'));
services.add(new PortainerService(3, 'Service 3', 'School B'));
services.add(new PortainerService(4, 'Service 4', 'School C'));
List<PortainerServiceSchoolVo> result = services.stream()
.filter(service -> service.getSchool().equals('School A'))
.map(service -> new PortainerServiceSchoolVo(service.getId(), service.getName(), service.getSchool()))
.collect(Collectors.toList());
System.out.println(result);
}
}
运行上述代码,将会输出过滤后的 'PortainerServiceSchoolVo' 对象列表:
[PortainerServiceSchoolVo{id=1, name='Service 1', school='School A'}, PortainerServiceSchoolVo{id=2, name='Service 2', school='School A'}]
以上代码演示了如何使用 'Stream' 的 'filter'、'map' 和 'collect' 方法来过滤并转换对象。你可以根据实际情况修改过滤条件和属性映射,以满足你的需求。
原文地址: https://www.cveoy.top/t/topic/qmYy 著作权归作者所有。请勿转载和采集!