Java8 Lambda 日常使用

 

日常开发总结:

 

  • list 取某字段生成数组

    String[] mProductIds = mProductList.stream().map(MProduct::getId).toArray(String[]::new);//遍历获取ids

  • 数组 拼成字符串

    String ids = Arrays.stream(mProductIds).map(String::toString).collect(Collectors.joining(","));

  • 多条相同商品的情况,转换为map>形式

        Map> productMap = reqVo.getRecords().stream().collect(Collectors.groupingBy
               (MWarehouseProSaveInfo::getPid));

  • list 以某个字段为类型生成一个list。               

    List ids = mProductCategoryList.stream().map(MProductCategory::getId).collect(Collectors.toList());

  • list -> String[]

    String[] productFields = fieldList.stream().toArray(String[]::new);

  • String[] -> List<>    

    去除list中重复数据
    ArrayList distinctedList = list.stream()
                .collect(
                        Collectors.collectingAndThen(
                                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(Employee::getId))),
                                ArrayList::new));

  • Array -> list

    result = Arrays.stream(lines).collect(Collectors.toList());    

  • list -> Array

    list.stream().map(String::toString).toArray(String[]::new)

  • 去重list 只保留第一个

        ArrayList distinctedList = list.stream()
                .collect(
                        Collectors.collectingAndThen(
                                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(Employee::getId))),
                                ArrayList::new)
                );

  • 分组 根据某字段                

    Map> collect = allTagList.stream().collect(Collectors.groupingBy(MProductTag::getId));                    

  • map:获取list某个字段的集合

    List categoryTypeList = categoryList.stream().map(e -> e.getCategoryType()).collect(Collectors.toList());

  • 获取对象list中某字段 的 重复值

      arrays.stream()
    .collect(Collectors.groupBy(a->a.getField(),Collectors.counting())
    .entrySet.stream()
    .filter(entry->entry.getValue()>1)
    .map(entry->entry.getKey())
    .collect(Collectors.toList());

  • 筛选    

    list.stream.filter(x -> "1".equals(x.getStatus)).collect(Collectors.toList());

  • list >>> map
   Map ticketMap = ticketProductList.stream().collect(Collectors.toMap(MProduct::getCompareId,    MProduct::getName));
  • 扁平化   List> list_1  --> List list_2
list_2 = list_1.stream()
        .flatMap(Collection::stream)
        .collect(Collectors.toList());

 

 

你可能感兴趣的:(java,lambda表达式)