Java 8流式转换-将List <integer []>转换为Map <integer,list <integer >>

时间:2018-10-29 14:25:12

标签: java java-8 java-stream

我想将List<Integer[]>转换为Map<Integer,List<Integer>>Integer[]的大小为2。 Integer[0]是地图的键,Integer[1]是地图的值。

让我们举个例子。输入值为:

List<Integer[]> a=new ArrayList<>(5);
a.add(new Integer[] {1,2});
a.add(new Integer[] {1,3});
a.add(new Integer[] {1,15});
a.add(new Integer[] {2,11});
a.add(new Integer[] {2,7});

并且结果输出映射将具有两个键1和2。

键1的值是2,3和15。

键2的值是11和7。

2 个答案:

答案 0 :(得分:4)

以下是将收集的结果分组到数组的第一个元素上的流:

Map<Integer, List<Integer>> gouped = a.stream()
    .collect(Collectors.groupingBy(arr -> arr[0], 
             Collectors.mapping(arr -> arr[1], Collectors.toList())));

那张地图是{1=[2, 3, 15], 2=[11, 7]}

答案 1 :(得分:0)

尝试这个

{% for advert in listWorker %}
{% if advert.client != 'xxxxx' %}
<li class="sidebar-dropdown">
    <a href="#">
        <span>{{ advert.client }}</span>
    </a>
    <div class="sidebar-submenu">
        <ul>
            <li>
                <a href="#">{{ advert.nom }}</a>
            </li>
        </ul>
    </div>
</li>
{% endif %}
{% endfor %}
相关问题