Java 将 List<LevelRuleItem> 转换为 Map<String, List<Object>>
<p>使用 Java8 的流式 API 和 Collectors 工具类可以轻松地将 List<LevelRuleItem> 转换为 Map<String, List<Object>>,其中 key 是字段属性,value 是所有字段的值列表。</p>
<p>示例代码如下:</p>
<pre><code class="language-java">Map<String, List<Object>> result = levelRuleItemList.stream()
.flatMap(item -> item.getFields().entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
</code></pre>
<p>首先,我们使用 <code>stream()</code> 方法将 List 转换成流,然后使用 <code>flatMap()</code> 方法将每个 LevelRuleItem 对象的 <code>fields</code> 属性转换成一个 Entry 流,这样所有的字段就都在一个流中了。接着,我们使用 <code>Collectors.groupingBy()</code> 方法按照字段属性进行分组,并使用 <code>Collectors.mapping()</code> 方法将每个字段的值提取出来,最终得到一个 Map<String, List<Object>> 结果。</p>
原文地址: https://www.cveoy.top/t/topic/mlNy 著作权归作者所有。请勿转载和采集!