我想用Java8Stream API将一个Java POJO列表转换为一个非静态方法中的映射。
我的折线图需要x轴的日期字符串值列表和Y轴的数值列表。这是一种典型的地图格式。但我的数据库为我返回了一个POJO列表。我不喜欢在没有Java8流API的帮助下进行循环。我尝试了这个[ask}(Java 8 List of Objects to map
POJO:
@Data
MoreCustomDTO {
private String date;
private Integer money;
}
DAO查询方式:
public List<MoreCustomDTO > getMoreCustomCount(@Param("format") String format, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<MoreCustomCountDTO> customList = customDao.getMoreCustomCount(SqlUtils.DATE_TYPE_FORMAT[Integer.valueOf(type)],startTime,endTime);
Map<String, List> map = new HashMap();
List<String> dateList = new ArrayList<>();
List<Integer> moneyList = new ArrayList<>();
for (MoreCustomCountDTO data : customList) {
dates.add(data.getDate());
dailyAmounts.add(data.getMoney());
}
map.put("date", dateList);
map.put("money", moneyList);
故障代码段:
Map<String,List> map =
customList.stream()
.flatMap(element -> {
Map<String,String> um = new HashMap<>();
um.put("date",element.getDate());
um.put("money",element.getMoney());
return um.entrySet().stream();
})
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue,
Collectors.toList())));
我从数据库里得到一份名单。它是JSON FORAMT中的对象数组。
答复:
{
"rows": [
{
"date": "2019-09-01",
"money": 0.00
},
{
"date": "2019-09-02",
"money": 0.00
}
]
}
但我想要一个(键)对多(值)的映射格式。
答复:
{
"map": {
"date": [
"2019-09-01",
"2019-09-02"
],
"money": [
0.00,
0.00
]
}
}
老实说,我觉得你最初的解决方案还可以。有时强迫一个解决方案使用该语言最花哨的特性来实现,最终导致代码不太清晰,这总是一件坏事。
话虽如此,我想你想做的是:
Map<Object, Object> map = Stream.of(
new SimpleEntry<>(
"date",
customList.stream().map(MoreCustomDTO::getDate).collect(Collectors.toList())
),
new SimpleEntry<>(
"money",
customList.stream().map(MoreCustomDTO::getMoney).collect(Collectors.toList())
)
).collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue));
我有一个lambda表达式,我想在其中创建一个对象列表,但我得到了错误 错误 我希望作为lambda表达式的返回类型。我怎样才能做到呢?
问题内容: 在Java中,如何获取作为a返回的值? 问题答案:
问题内容: 我必须将我们的j2ee应用程序与REST Web服务集成在一起。我想使用JBoss的RestEasy JAX- RS实现。Web服务返回JSON格式的数组。我有这段代码: 我可以将此“响应”对象映射到使用RestEasy吗?谢谢 问题答案: 如果您的JSON提供程序能够转换为适当的实体,那么可以。您在代码中调用的方法具有重载的版本,该版本接受将结果转换为的实体类。由于序列化某些集合的实
在我的Spring Boot项目中,我有两个类(实体和模型) 在模型中有一个列表 :
问题内容: 如何转换 这是例子 有没有简单的方法可以做到这一点?什么库在这里有用? 谢谢。 问题答案: 也许http://dozer.sourceforge.net可以为您提供帮助。它是可通过xml配置的映射库。 我很快尝试了这个: 我的mappings.xml看起来像这样: 不幸的是,它仅将10映射到所有三个PojoObject属性。也许您可以看到错误并使用代码段。也许这是Dozer中的一个错误
问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试: