<p>使用 Java8 的流式 API 和 Collectors 工具类可以轻松地将 List<LevelRuleItem> 转换为 Map&lt;String, List<Object>&gt;,其中 key 是字段属性,value 是所有字段的值列表。</p>
<p>示例代码如下:</p>
<pre><code class="language-java">Map&lt;String, List&lt;Object&gt;&gt; result = levelRuleItemList.stream()
        .flatMap(item -&gt; 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&lt;String, List<Object>&gt; 结果。</p>

原文地址: https://www.cveoy.top/t/topic/mlNy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录