我们如何在java8中的DoubleSummaryStatistics对象中自定义计数,平均,和,最小和最大的顺序

时间:2018-08-20 12:36:59

标签: java java-8

我得到以下格式的输出,我认为这是默认格式。

{"count":100,"sum":25640.13,"min":2.65,"max":483.91,"average":256.4013}

但是我想按以下方式更改此格式。

{"sum":"25640.13","avg":"256.40","max":"483.91","min":"2.65","count":100}

下面是我在Java类中使用的代码。

 @Override
public DoubleSummaryStatistics getStatistic() {
    logger.info("Getting statistic");
    Set<Entry<Long, Transaction>> endtrySet = statisticHistory.entrySet();
    List<Double> amountList = new ArrayList<>();

    for (Entry<Long, Transaction> entry : endtrySet) {
        if (((entry.getValue().getDate())).isAfter(Instant.now().minusSeconds(windowInMs)))
            amountList.add((entry.getValue().getAmount()).doubleValue());
    }
    return amountList.stream().mapToDouble((x) -> x).summaryStatistics();

}

如何重新排列json格式?

为进一步了解,请使用简单语法粘贴以上方法。 示例代码方法。

    public DoubleSummaryStatistics getStatisdtic() {
    logger.info("Getting statistic");
    Set<BigDecimal> endtrySet = null ; //= getting this from a other resource
    List<Double> amountList = new ArrayList<>();

    for (BigDecimal entry : endtrySet) {
            amountList.add((entry).doubleValue());
    }
    return amountList.stream().mapToDouble((x) -> x).summaryStatistics();

}

1 个答案:

答案 0 :(得分:2)

由于您无法编辑DoubleSummaryStatistics(无法在其中添加自己的json特定注释),因此您可以做的是创建自己的类MyDoubleSummaryStatistics,该类可以通过任何方式创建你想要的结果。

但是如果您要在该toString上调用DoubleSummaryStatistics,为什么不与其分别调用每个字段,例如DoubleSummaryStatistics ::getAverage之类的东西,并构建您需要/想要的任何字符串。 / p>