str-api && map()、reduce()

本文深入探讨了编程领域的核心技术,包括数据结构、算法、软件工程实践等,并结合实际应用场景进行了详细阐述,旨在帮助开发者提升技能,解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.String API

1.upper() 将str中的所有字母变成大写字母

2.lower() 将str中的所有字母变成小写字母

3.cpitalize() 将str中的字符串变成首字母大写,其余小写

4.title() 将str中的所有单词变成大写字母开头其余字母小写

5.str( item ) 类似于java语言中的toString方法将item强制转换为string类型

6.isupper()  判断str中是否全部为大写字母,返回bool

7.islower() 判断str中是否全部为小写字母,返回bool

8.istitle() 判断str中的单词是否都是第一个字母大写,其余字母为小写,返回bool

2.map(function,input_list)

map函数有两个参数,第一个参数为传入函数f(x),第二个为一个输入集合[x1,x2,x3,x4,...],返回一个集合为[f(x1),f(x2),f(x3),...]

3.reduce(function, input_list)

reduce函数有两个参数,第一个为传入的函数f(x,y),第二个为输入集合[x1,x2,x3,x4,...],返回f(f(x1,x2),x3),x4),..

4.filter(function,input_list)

filter函数有两个参数,第一个传入一个返回类型为bool的函数,第二个为输入集合,将所有function(input_item)为True的item作为一个新的list返回

5.sorted(input_list,function)

其中第二个输入参数是可选的,如果只有一个输入参数,则对input_list进行按大小排序并返回,如果想自定义排序方法,可以实现function(x1,x2)并传入。

return resultList.stream().collect(Collectors.groupingBy( MatcheMaterialsListFindOrderListByIdsResult::getMaterialCode, Collectors.collectingAndThen( Collectors.toList(), list -> { MatcheMaterialsListFindMaterialListByIdsResult summary = new MatcheMaterialsListFindMaterialListByIdsResult(); summary.setMaterialCode(list.get(0).getMaterialCode()); // isMatch: 如果都等于1,则为1,否则为0 summary.setIsMatch(list.stream() .allMatch(item -> item.getIsMatch() != null && Constant.ONE.equals(item.getIsMatch())) ? 1 : 0); // fastestCompleteTime: 取最大值 summary.setFastestCompleteTime(list.stream() .map(MatcheMaterialsListFindOrderListByIdsResult::getFastestCompleteTime) .filter(Objects::nonNull) .max(LocalDateTime::compareTo) .orElse(null)); // reserveMatch: 求和 summary.setReserveMatch(list.stream() .map(MatcheMaterialsListFindOrderListByIdsResult::getReserveMatch) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add)); // id: 逗号分隔 summary.setMesIds(list.stream() .map(MatcheMaterialsListFindOrderListByIdsResult::getId) .collect(Collectors.joining(","))); // fastestCompleteTimeStr: 根据规则进行处理 List<String> fastestCompleteTimeStrList = list.stream() .map(MatcheMaterialsListFindOrderListByIdsResult::getFastestCompleteTimeStr) .filter(Objects::nonNull) .collect(Collectors.toList()); // 1. 如果所有值都是"-",返回"-" String fastestCompleteTimeStr; if (fastestCompleteTimeStrList.stream().allMatch("-"::equals)) { fastestCompleteTimeStr = "-"; } // 2. 如果包含非"-"的值,返回第一个非"-"的值 else if (fastestCompleteTimeStrList.stream().anyMatch(str -> !"-".equals(str))) { fastestCompleteTimeStr = fastestCompleteTimeStrList.stream() .filter(str -> !"-".equals(str)) // 去掉"-" .findFirst() // 返回第一个非"-"的值 .orElse("-"); // 如果没有非"-"值,返回"-" } else { fastestCompleteTimeStr = "-"; } summary.setFastestCompleteTimeStr(fastestCompleteTimeStr); return summary; } ) )); 解读代码
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值