public class Dto {
private Integer id;
private String text;
private BigDecimal price;
}
Map<String, Map<Integer, List<Dto>>> map =
list.stream()
.collect(
Collectors.groupingBy(
Dto::getText,
Collectors.groupingBy(Dto::getId)));
List<SumDto>
public class SumDto {
private Integer id;
private String text;
private BigDecimal sum;
}
你没有求和,这就是为什么你在任何地方都看不到和。您必须告诉collectors.groupingby
如何减少下游元素。否则,它将默认创建列表
。
你可以这样做:
Map<String, Map<Integer, BigDecimal>> map = list.stream()
.collect(Collectors.groupingBy(
Dto::getText,
Collectors.groupingBy(
Dto::getId,
Collectors.reducing(
BigDecimal.ZERO,
Dto::getPrice,
BigDecimal::add))));
至于返回结构,我将把它作为练习;)
需要帮助的一个案件流与分组由我希望能够分组由2个不同的字段,并有其他大小数字段的总和,根据不同的分组。以下是我的实体: 让我们假设我有以下列表作为输入: 下面有一个解决方案的开头,但我在添加第二个聚合来总结余额的时候阻止了:
我想使用Laravel雄辩的模型和关系来连接项目中所有表中的数据;然而,我在翻译这些关系时遇到了一个问题。例如,我有两张桌子;第一个是Books表,另一个是Author表。 如何在Books表上建立关系以获取和?
假设我已将以下对象序列化为json字符串: 现在我想反序列化它,但是我想把名称分成两个字段,和。我该怎么做呢? 我希望最终的结果是类似于: 这对Gson有可能吗?
问题内容: 我有一张税单: TaxLine类为 我想基于unique 和合并它们,然后添加预期: 问题答案: 主体与链接问题中的主体相同,只需要一个不同的下游收集器来求和:
我有一个包含下一个数据的ArrayList:(int)、(int)、(int)、(String)。我按字段对此数组进行排序。如果长度与提交的相等,我如何赋予优先级(优先级将具有具有水平位置的长度)。例如,给定输入: 输出应为: 以下是我所拥有的:
问题内容: 在我的模块中,我有以下many2one字段: 在以下位置: 我知道many2one场取 名字 字段的显示名称,但我想有它使用的组合,并在形式 我读过最好覆盖该方法,所以我尝试了以下方法: 并将其放在ÌnsuranceType`类中。既然什么也没发生:我是否必须将其放置在包含该字段的主类中?如果是这样,是否还有其他方法可以执行此操作,因为这也可能会更改其他many2one字段的显示方式?