使用Java8流从List <Obj>中查找一个值的总计

寻求者

以下是我的json请求。我的要求是如果“ cols”。“ name” =“ tran_amt”找到“ cols”。“ value”字段的总数

{
  "request" : {
    "reqID" : "6839796504132",
    "processID" : 97904250,
    "tables" : [ {
      "tableName" : "TABLE_NAME",
      "records" : [ {
        "recordID" : "record_id1",
        "cols" : [ {
          "name" : "tran_amt",
          "type" : "VARCHAR2",
          "value" : "562356"
        }, {
          "name" : "tran_id",
          "type" : "VARCHAR2",
          "value" : "123456"
        } ]
      }, {
        "recordID" : "record_id2",
        "cols" : [ {
          "name" : "tran_amt",
          "type" : "VARCHAR2",
          "value" : "987098"
        }, {
          "name" : "tran_id",
          "type" : "VARCHAR2",
          "value" : "123456"
        } ]
      } ]
    } ]
  }
}

这是我尝试过的解决方案,

cols = request.getTables().get(0).getRecords().get(0).getCols();
total = cols.stream().filter(o -> "tran_amt".equalsIgnoreCase(o.getName())).mapToInt(o -> Integer.valueOf(o.getValue())).sum();

我的解决方案仅从“ cols”的第一个obj中检索“ value”(在这种情况下为562356)。它不对符合条件的所有“值”求和。

关于我错了的任何输入吗?

提前致谢。

ETO

试试这个:

total = request.getTables()
               .stream()
               .flatMap(t -> t.getRecords().stream())
               .flatMap(r -> r.getCols().stream())
               .filter(c -> "tran_amt".equalsIgnoreCase(c.getName()))
               .mapToInt(c -> Integer.valueOf(c.getValue()))
               .sum();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java8流减少Java列表中的元素

使用Java8流找到从地图的最高值

使用Java8使用endsWith方法在另一个ArrayList中的一个ArrayList中查找字符串值

对象 obj = 真;但是 Java 说 obj 是布尔值

使用 java8 流从另一个列表创建对象列表

(Java)ArrayList <obj>中add(obj o)方法的内部工作

从排序使用$ obj-数据库中抽取一个数组>选择

使用obj-c在UIAlertView中创建一个文本字段

列表流JAVA8中的列表

Java8:使用流将一个地图转换为另一个地图

使用Java8流API从集合中删除最大值(或最小值)

Java 8嵌套流:在最后一个流中返回一个值

在Python中建立动态JSON / LIST obj

使用 dispatch 更改 obj 的特定值

在 Java 中的 hashmap 中返回 obj

Gurobi使用addVar中的obj参数

将映射器流应用于Java8中的另一个流

如何使用熊猫从另一个数据框中的一个值中查找值?

使用Java8流API将函数列表应用于值

无法将obj实例化到文件中并在另一个文件中使用它

Java8从使用流一类对象中提取多个字段

在Java8中使用groupingBy和summingInt扩展流的输出

使用Java8运行时如何在流中获取新的用户输入

在Java8中使用流时,是否应该始终检查Optional?

使用R查找一个月中多个事件的时间总计

使用Java 8流在2个列表中查找匹配的元素,并从另一个列表中更新一个列表值

使用linq查找List <List <string >>的多个值中的任何一个

使用Java 8,当且仅当它具有空值时,如何在List <Object []>中为obj [4]设置字符串常量?

使用一个参数制作overProp <Obj>函数接口