如何将Java中的List对象转换成另一个具有几个相同字段,不是全部的集合类型,即使目标集合的对象包含较少字段?
时间: 2024-10-20 07:03:35 浏览: 21
在Java中,如果你想从一个`List`转换成另一个只包含部分字段的集合,例如一个自定义类的子集,你可以通过创建一个新的列表,并使用流(Stream)操作来进行筛选和映射。这里是一个简单的步骤说明:
1. 创建一个目标类型的集合(假设为`TargetClass`),它只包含你需要的字段。
```java
public class TargetClass {
private String field1;
// 只包含List里的特定字段
public TargetClass(String field1) {
this.field1 = field1;
}
// getters and setters...
}
```
2. 使用`List`的`stream()`方法创建一个流,然后使用`filter()`和`map()`方法过滤并映射源列表中的元素到目标类型。假设我们想要保留`field1`:
```java
List<YourOriginalClass> originalList = ...; // 原始的List对象
List<TargetClass> targetList = originalList.stream()
.map(originalObj -> new TargetClass(originalObj.getFieldYouWant())) // 假设`getFieldYouWant()`返回所需的字段值
.collect(Collectors.toList());
```
3. 这样,`targetList`就包含了原始列表中指定字段的`TargetClass`实例。
阅读全文