【发布时间】:2017-08-30 06:26:02
【问题描述】:
[
{"productStatus":
[
{"status": "spoilt"},
{"status": "used"}
],
"productMsg":
[
{"msg": "Valid"}
]
},
{"productStatus":
[
{"status": "new"},
],
"productMsg":
[
{"msg": "Ok"},
{"customMsg" : "blah blah"}
]
}
]
我将上述数据存储在List<Map<String, List<Map<String, String>>>>;
例如:
val is represented by Lombok library.
val firstObj = ImmutableList.of(ImmutableMap.of("status", "spoilt"),
ImmutableMap.of("status", "new"),
ImmutableMap.of("status", "used"));
val secondObj = ImmutableList.of(ImmutableMap.of("msg", "Valid"));
val productStatus1 = ImmutableMap.of("productStatus", firstObj,
"productMsg", secondObj);
val firstObj_1 = ImmutableList.of(ImmutableMap.of("status", "new"));
val secondObj_2 = ImmutableList.of(ImmutableMap.of("msg", "Ok"));
val productStatus_2 = ImmutableMap.of("productStatus", firstObj_1,
"productMsg", secondObj_2);
val testObj = ImmutableList.of(productStatus1, productStatus_2);
我需要确定一个 productStatus 是否是新的,然后获取所有 productMsgs。例如在我给出的示例中: 我将需要
的地图{"msg": "Ok"},
{"customMsg" : "blah blah"}
对于每个状态为 new 的 productStatus,继续将其添加到列表中。基本上我需要返回一个List<Map<String, String>>。
我知道如何在传统的 Java for 循环方法中执行此操作,我觉得这太笨拙和冗长。有没有使用 Streams 的巧妙方法?
【问题讨论】:
-
val...这不是java?! -
你为什么不用 POJO 模型?
-
您应该为您的数据创建类,而不是将所有内容存储为字符串映射列表。它会让您(和我们)的生活更轻松。
-
您是否建议我先解析数据并将其存储在一个类中,然后进行任何我需要的搜索?
-
我想这取决于你如何使用数据以及它会保留多长时间,但这绝对值得考虑。