[开发] JAVA开发常用函数

  1. 生成UUID
    参考文献:JAVA生成UUID
//生成UUID
String preUuid = UUID.randomUUID().toString();
// UUID的方法,去掉“-”符号
System.out.println(UUID.randomUUID().toString().replace("-", ""));
  1. 生成MD5
    参考文献:java实现MD5加密的三种方式
    所需jar包:commons-codec.jar
import org.apache.commons.codec.digest.DigestUtils;

DigestUtils.md5Hex(str);
  1. List使用
    参考文献:lamda表达式对List进行分组,List按条件过滤
    参考文献java List实体集合分组
    3.1 List数据分组
    List分组GroupBy一个字段
Map<Long, List<BaseOil>> subListMap = baseOilList.stream().filter(x -> x.getSubclassId() != null).collect(Collectors.groupingBy(BaseOil::getSubclassId));

List分组GroupBy多个字段

Map<MtrlSupplyDailyDtlEntity, List<MtrlSupplyDailyDtlEntity>> collect = dtlList.stream().collect(Collectors.groupingBy(
               record -> new MtrlSupplyDailyDtlEntity(record.getBaseOilId(), record.getBaseOilName(), record.getMtrlStoragePlaceId())));
// 根据班级、性别将学籍分组
Map<String, List<StudentResource>> mapGroupStudentByClassAndXbm = studentResources
        .stream()
        .collect(Collectors.groupingBy(
                v -> v.getStudentStatus().getGxxs0701().getSzbh()
                        + v.getJcxs0101().getXbm()));

对分组结果进行筛选

Map<ReportEntity, List<InReport>> entry = subListMap.entrySet().stream().filter(x -> x.getKey().getReportDateT().equals(dateList.get(0)) && x.getKey().getCompanyCode().equals(code)).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));

3.2 List数据查询

Optional<DepartmentResource> optional = departmentResources
        .stream()
        .filter(a -> data.getDwh()
                .equals(a.getJctb0103().getDwh()))
        .findFirst();

3.3 List遍历

resultStudent.get().stream()
               .forEach(r -> createOrUpdateCounselor(r.getId().intValue(),
                       Student.class.getName()));

3.4 多条件过滤

List<user> filter= users.stream()
                          .filter(user -> user.getName().indexOf("月") > -1 || user.getEmail().indexOf("mu") > -1)
                          .collect(Collectors.toList());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值