java中的优雅写法

// 驼峰转下划线
str.replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase()

// ,拼接字符串转List
List<Long> shdIdList = Arrays.stream(thjclResult.getRwdh().split(",")).map(Long::valueOf).collect(Collectors.toList());

//对象转换
GetUserInfoDetailRespDto respDto = BeanUtil.copyBean(ryxx, GetUserInfoDetailRespDto::new, (ry, dto) -> {
                if (StringUtils.isNotBlank(ry.getBmCode())) {
                dto.setBmCode(Long.valueOf(ry.getBmCode()));
            }
        });

//List拼接成String
StringUtils.join(list,"、");

// 按zdlxkzsxId分组
Map<Long, List<String>> zdxxExPropMap = zdxxkzsxes.stream().collect(Collectors.groupingBy(Zdxxkzsx::getZdlxkzsxId,Collectors.mapping(Zdxxkzsx::getExProp, Collectors.toList())));

// 通过所属类型分组人员的部门id <type,List[bmId1,bmId2...]>
Map<Integer, List<Long>> userBmIdGroupByType = 
userList.stream().collect(Collectors.groupingBy(QueryUserListRespDto::getType, Collectors.mapping(QueryUserListRespDto::getBmCode,Collectors.toCollection(ArrayList::new))));

// List转Map
List<Bmxx> bmxxList = this.list(Wrappers.<Bmxx>lambdaQuery().in(Bmxx::getBmxxId, idList));
bmxxIdNameMap = bmxxList.stream().collect(HashMap::new, (map, bmxx) -> map.put(bmxx.getBmxxId(), bmxx.getBmxxName()), HashMap::putAll);

//判断List中元素是否都相等
list.stream().distinct().count() <= 1;
list.isEmpty() || list.stream().allMatch(list.get(0)::equals);

//判断List中是否存在某个元素
list.stream().anyMatch(obj -> "str2".equals(obj));

// 判断List中某个字段是否存在重复值
req.getWlhtXyfwReqDtoList().stream().collect(Collectors
                .collectingAndThen(
                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WlhtXyfwReqDto::getXtly))),
                        ArrayList::new)).size();
        if (req.getWlhtXyfwReqDtoList().size() != num) {
            throw new BusinessException(BusinessCode.PARAMETER_ERROR.getCode(), "系统来源不能重复!");
        }

//两个List去重
list1.removeIf(obj1 -> list2.stream().anyMatch(obj2 -> obj2.getCode().equals(obj1.getCode())));

// 使用Stream API将DTO对象的code字段拼接成一个字符串
String codesString = ryxxglJsChangeDtoList.stream().map(RyxxglJsChangeDto::getCxjsCode).collect(Collectors.joining(","));

// List排序
// 升序
Comparator<RyxxglJsChangeDto> comparator = Comparator.comparing(RyxxglJsChangeDto::getCxjsCode);
// 降序
Comparator<RyxxglJsChangeDto> comparator = Comparator.comparing(RyxxglJsChangeDto::getCxjsCode).reversed();
Collections.sort(ryxxglJsChangeDtoList, comparator);


// 创建布隆过滤器  
BloomFilter<String> bloomFilter = BloomFilter.create(  
    Funnels.stringFunnel(Charset.forName("UTF-8")),  
    1000,  
    0.01  
);
Set<String> elementsToInsert = Set.of("apple", "banana", "cherry");  
// put元素
elementsToInsert.forEach(bloomFilter::put);  
System.out.println(bloomFilter.mightContain("apple"));  // 应该返回 true

// 获取最大值
Optional<FwtsRwdxxBean> maxUpdateTimeDto = fwtsRwdxxBeanList.stream().max(Comparator.comparing(FwtsRwdxxBean::getUpdateTime));
                if (maxUpdateTimeDto.isPresent()) {
FwtsRwdxxBean fwtsRwdxxBean = maxUpdateTimeDto.get();
}
// 左补齐(使用字符串0向左补齐至7位)
StringUtils.leftPad(str, 7, "0");

//字符串拼接
String.format("%s%s","Axx","Bxx");

//获取LocalDateTime的开始时间和结束时间
queryReqDto.getTjrqF().with(LocalTime.MIN)
queryReqDto.getTjrqT().with(LocalTime.MAX)

DecimalFormat df = new DecimalFormat();
BigDecimal data = new BigDecimal(0.305607809);
String pattern = "0.00%";//120340.56%
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:"+df.format(data));//40.56%

BigDecimal data1 = new BigDecimal(60.305607809);
String pattern1 = "-00.000kg";
df.applyPattern(pattern1);
System.out.println("采用" + pattern1 + "模式格式化后:"+df.format(data1));//-60.306kg

// String转java对象
ResultDto resultDto = JSONObject.parseObject(JSONObject.toJSONString(obj), new TypeReference<>() {});
ResultDto resultDto = JSONObject.parseObject(JSONObject.toJSONString(obj), ResultDto.class);

//取每个月的第一天和最后一天
calendar.set(Calendar.DAY_OF_MONTH,lastMonthFirstDay.getActualMinimum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.DAY_OF_MONTH,lastMonthFirstDay.getActualMaximum(Calendar.DAY_OF_MONTH));

SQL INNER JOIN limit慢的优化写法:

FROM
 wljs_yt_shjsxx jsxx
 INNER JOIN (
    SELECT
        shjsxx_id
    FROM
        wljs_yt_shjsxx
    LIMIT 20
    ) jsxx1 ON jsxx.shjsxx_id = jsxx1.shjsxx_id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值