Java教程

stream 分组(group)和map的值映射mapping变型写法

本文主要是介绍stream 分组(group)和map的值映射mapping变型写法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

参考这个流映射写的:

stream 分组(group)和map的值映射mapping 

我们经常写那种分组查询的操作:根据某个id,分组聚合成Map<Long,List<String>> 类似这样的语法。

发现一个for和别的组合在一起,比较好,单独的一个流操作n次,本来用for可以解决的问题,使用了多次的流操作,看着花里胡哨的,实际上性能并没有提升,反而下降了不少。

   public static void main(String[] args) {

        List<FloorElement> elementList=new ArrayList<>();
        FloorElement element=new FloorElement();
        element.setId(1l);
        element.setFloorId(1l);
        elementList.add(element);
        FloorElement element2=new FloorElement();
        element2.setId(2l);
        element2.setFloorId(1l);
        elementList.add(element2);

        Map<Long, List<FloorElement>> map = new HashMap<>();
        for (FloorElement value : elementList) {
            map.computeIfAbsent(value.getFloorId(), k -> new ArrayList<>()).add(value);
        }
   //打印的结果是两条数据,是分组的结果,根据id ,变种的写法
        elementList.stream() .collect(Collectors.groupingBy(FloorElement::getFloorId, Collectors.mapping(value->value, Collectors.toList())));

    }

  

 

这篇关于stream 分组(group)和map的值映射mapping变型写法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!