// 驼峰转下划线
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