java8把实体类List内的属性转化为list
时间: 2024-10-23 16:08:35 浏览: 9
在Java 8中,如果你有一个包含实体类(比如Person)的对象列表(List<Person>),并且你想将这些对象的某个共通属性(如名字name)转换成一个新的List<String>,你可以使用Stream API来进行操作。这里是一个简单的例子:
```java
List<Person> people = ...; // 假设people已经初始化
List<String> namesList = people.stream()
.map(Person::getName) // 使用方法引用提取每个Person对象的名字
.collect(Collectors.toList()); // 将stream转换为List<String>
// 现在namesList就是Person列表中所有人的名字组成的列表
```
在这个例子中,`map()`函数用于转换每个元素(Person对象),`getName()`是Person类的一个方法,`Collectors.toList()`则是收集流中的元素并创建一个新的列表。
相关问题
java String jsonReqBody 转化json文本为 List<FenPeiYuLanVo> fenPeiYuLanList实体类集合
在Java中,如果你有一个`String`类型的JSON请求体(`jsonReqBody`),并且这个JSON描述的是一个包含`FenPeiYuLanVo`对象的列表,你可以使用类似上述Gson的例子,只不过这次直接处理`FenPeiYuLanVo`作为目标类型。首先,你需要定义`FenPeiYuLanVo`类,然后使用Gson的`fromJson`方法解析JSON。
假设`FenPeiYuLanVo`类像这样:
```java
public class FenPeiYuLanVo {
private int id;
private String name;
// 其他字段...
// getters and setters
}
```
将JSON转换为`List<FenPeiYuLanVo>`的过程如下:
```java
Gson gson = new Gson();
JsonElement jsonElement = gson.fromJson(jsonReqBody, JsonElement.class); // 将JSON字符串转化为JsonElement
JsonArray jsonArray = jsonElement.getAsJsonArray(); // 将JsonElement视为JsonArray
List<FenPeiYuLanVo> fenPeiYuLanList = new ArrayList<>();
for (JsonElement element : jsonArray) {
FenPeiYuLanVo vo = gson.fromJson(element, FenPeiYuLanVo.class);
fenPeiYuLanList.add(vo);
}
```
现在,`fenPeiYuLanList`就是一个包含`FenPeiYuLanVo`对象的列表了。
java实现:使用java8新特性实现:有一个list,里面存放费用实体,费用实体有科目属性,将list转化成map,key值为科目,value值为:属于这个科目的集合
在Java 8中,可以使用Stream API和Collectors来实现这种转换。假设我们有一个`FeeEntity`类,其中包含`subject`属性,List叫做`feeList`,你可以按照以下步骤操作:
```java
import java.util.*;
import java.util.stream.Collectors;
class FeeEntity {
private String subject;
// 其他属性...
}
List<FeeEntity> feeList; // 这里假设feeList已填充数据
Map<String, List<FeeEntity>> mapBySubject = feeList.stream()
.collect(Collectors.groupingBy(FeeEntity::getSubject));
// 现在mapBySubject是一个Map,键是科目名,值是该科目对应的费实体列表
```
上述代码首先创建了一个流(Stream)从`feeList`开始,然后使用`Collectors.groupingBy()`函数对元素按`subject`属性进行分组,最后得到的结果就是每个科目及其对应的费实体列表。
阅读全文