stream流新特性 list转map

   @Test
    public void test01(){
        List<TbSeller> tbSellers = tbSellerMapper.selectAll();
        for (TbSeller tbSeller : tbSellers) {
            System.out.println(tbSeller);
        }
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // (k1, k2) -> k1)是为了解决TbSeller::getSellerId作为key时,会报异常 Function.identity()的结果是每个实例对象TbSeller System.out.println("******************list转map key为某一字段 value为对象*****************"); Map<String, TbSeller> tbSellerMap = tbSellers.stream().collect(Collectors.toMap(TbSeller::getSellerId, Function.identity(), (k1, k2) -> k1)); System.out.println("tbSellers转成map的结果tbSellerMap是:"+JSON.toJSONString(tbSellerMap)); // { //"baidu" :{ "addressDetail" : "西二旗小胡同", // "linkmanMobile" : "1390000111", // "linkmanName" : "李彦宏", // "linkmanQq" : "123456", // "name" : "百度公司", // "nickName" : "百度商店", // "password" : "123456", // "sellerId" : "baidu", // "status" : "1", // "telephone" : "4004004400" }, // //"baima" :{ "name" : "我也不知道", // "nickName" : "你懂的", // "password" : "123456", // "sellerId" : "baima", // "status" : "1", // "telephone" : "13388888899" }}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.out.println("***************list过滤********************"); // 基本数据类型用== 进行比较 其他大部分用equals进行比较 List<TbSeller> newTbSellerList = tbSellers.stream().filter(tbSeller -> StringUtils.equals(tbSeller.getSellerId(),"baidu")) .collect(Collectors.toList()); System.out.println("tbSellers过滤的结果newTbSellerList是:"+JSON.toJSONString(newTbSellerList)); /** [{ "addressDetail" : "西二旗小胡同", "linkmanMobile" : "1390000111", "linkmanName" : "李彦宏", "linkmanQq" : "123456", "name" : "百度公司", "nickName" : "百度商店", "password" : "123456", "sellerId" : "baidu", "status" : "1", "telephone" : "4004004400" }] */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.out.println("***************分组,计数********************"); Map<String, Long> collect = tbSellers.stream().collect(Collectors.groupingBy(TbSeller::getName, Collectors.counting())); System.out.println("tbSellers过滤的结果collect是:"+JSON.toJSONString(collect)); // 复杂写法 Map<TbSeller, Long> collect1 = tbSellers.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println("tbSellers过滤的结果collect1是:"+JSON.toJSONString(collect1)); /** {"我也不知道":1,"百度公司":1} */ System.out.println("***********************************"); }
上一篇:java8-collect操作实例


下一篇:java流stream中的collect()方法详解