【发布时间】:2019-03-29 05:43:33
【问题描述】:
我想将流收集到LinkedHashMap<String, Object>。
我有一个存储在LinkedHashMap<String, Object> resources 中的JSON 资源。
然后我通过流式传输此地图的EntrySet 过滤掉JSON 元素。
目前我正在将流的元素收集到常规的HashMap。但在此之后,我将其他元素添加到地图中。我希望这些元素按插入顺序排列。
final List<String> keys = Arrays.asList("status", "createdDate");
Map<String, Object> result = resources.entrySet()
.stream()
.filter(e -> keys.contains(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
result.put("date", "someDate");
return result;
这就是为什么我想将流收集到LinkedHashMap<String, Object>。我怎样才能做到这一点?
【问题讨论】:
-
我有一个存储在 Map
资源中的 JSON 资源 -- 你怎么知道这张地图中的条目是按任何顺序排列的?除非它存储在 LinkedHashMap 中,否则您如何期望订单向前发展? -
JSON 不关心 JSON 对象的键顺序。
-
是的,但我愿意。我按特定顺序将它们打印出来,并通过将其与我的资源中的另一个 JSON 进行比较来对该方法进行单元测试。
-
@NicholasK 确实,我输入了错误的类型。应该是
LinkedHashMap<String, Object> resources。
标签: java hashmap java-stream linkedhashmap