1.for循环语句优化:
for(int i = 0, iSize = list.size(); i < iSize; i++){
......
}
每次循环都执行一遍list.size(),即使size函数里面声明都不做,仅return s; 开销也比写上一个变量iSize要大。
如果size函数还要计算统计元素数量。开销更大改写成i < iSize,每次循环就只2个整型之间比较一次,开销最小。
2.对象属性复制:
所需的包:commons-beanutils-1.9.2.jar
BeanUtils.copyProperties(A, B);//B对象属性复制到A对象属性
3.JDK1.8中java.util.stream.Collectors根据List对象某个属性进行分组:
// 按用户ID分组
Map<String, List<DrtAccountRecord>> groupByAccountId = drtDrtAccountRecordList.stream().collect(Collectors.groupingBy(DrtAccountRecord :: getAccountId));
4.集合非空判断:
所需的包:spring-core-4.3.5.RELEASE.jar
!CollectionUtils.isEmpty(Collection<?> collection);
5.字符串非空判断:
所需的包:commons-lang-2.5.jar
StringUtils.isNotBlank(String str);
6.日志输出:
所需的包:slf4j-api-1.7.25.jar
private Logger log = LoggerFactory.getLogger(Class<?> arg0);
log.error(String str);
7.通过数组拼接成以逗号分开的字符串:
所需的包:commons-lang-2.5.jar
Set<String> skuCodeSet = skuCodeMap.keySet();
String skuCodes = StringUtils.join(skuCodeSet.toArray(new String[skuCodeSet.size()]), ",");