使用Stream流遍历过滤Map集合 及 使用Stream流遍历指定变量并组成新的集合

一.使用Stream流遍历过滤Map集合

需求:
有一个类型为List的集合Map,Map有id、姓名、年龄、地址4个key。要求是把每个map的’name’取出来,作为一个新的集合。

    public void testStr(){

        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        Map<String,Object> mapOne = new HashMap<>();
        mapOne.put("id",1 );
        mapOne.put("name","小野光" );
        mapOne.put("age",24 );
        mapOne.put("address","静岡県静岡市駿河区" );
        list.add(mapOne);

        Map<String,Object> mapTwo = new HashMap<>();
        mapTwo.put("id",2 );
        mapTwo.put("name","石井真畿" );
        mapTwo.put("age",18 );
        mapTwo.put("address","東京都上野" );
        list.add(mapTwo);

        Map<String,Object> mapThree = new HashMap<>();
        mapThree.put("id",3 );
        mapThree.put("name","ちゅんこちゅん" );
        mapThree.put("age",26 );
        mapThree.put("address","愛知`名古屋" );
        list.add(mapThree);


        List<String> listStr =  list.stream().map(item -> item.get("name").toString()).collect(Collectors.toList());
        System.out.println(listStr);



    }

参考:https://www.cnblogs.com/xiaostudy/p/11648356.html

二.使用Stream流遍历指定变量并组成新的集合

背景:有个对象,分别有姓名、年龄、联系方式一、联系方式二 这四个属性,其中的两个联系方式我想放在一起遍历,过滤出不为空的,然后组成一个新的集合。

        SeatFsVo seatFsVo = new SeatFsVo();
        seatFSVo.setName("蒋明");
        seatFSVo.setAge(18);
        seatFsVo.setExplicitNumber("13007575998");// 联系方式一
        seatFsVo.setExplicitNumber2("1300757591");// 联系方式二

        List<String> expList = Stream.of(seatFsVo.getExplicitNumber(), seatFsVo.getExplicitNumber2()).filter(item -> StringUtils.isNotEmpty(item)).collect(Collectors.toList());
        System.out.println(expList);

你可能感兴趣的:(JAVA,html,css,stream)