代码优化4-看似不同却是重复的代码

本文探讨了在代码中发现并优化重复逻辑的方法,通过整合相似功能的代码片段,减少资源消耗,提升程序运行效率。以具体示例展示如何将两个实现相同功能但参数不同的方法整合为一个通用方法,从而简化代码结构。

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

新的一年了,最近也不知道忙什么,杂七杂八的事情太多了。

今天再发一个代码级别的优化点,就是业务意义不一样但功能一样,却有着两份代码:

public boolean hasExcludeProperty(String[] excludeProperties,
String[] properties) {
if (excludeProperties != null) {
for (String exPro : excludeProperties) {
for (String pro : properties) {
if ((exPro.trim()).equals(pro.trim())) {
return true;
}
}
}
}
return false;
}



private boolean isExcludeCats(String[] excludeCats, String[] categoryIds) {
if (excludeCats != null && categoryIds != null)
{
for (String cat : excludeCats) {
if (StringUtil.isEmpty(cat)) {
continue;
}
for (String str : categoryIds) {
if (cat.equals(str)) {
return true;
}
}
}
}
return false;
}


上面两段代码中同一个类中出现,其实实现的功能都是检查第二个数组中的字符串是否在第一个数组中出现,只要写一份代码即可。
优化后结果如下

/**
* 判断目标数组中的字符串是否在源数组中出现
* @param src 源数组
* @param dest 目标数组
* @return true 存在着相同的字符串
*/
private boolean isContain(String[] src,String[] dest) {
if (src == null || dest == null || src.length<1 || dest.length<1)
{
return false;
}
for(String s : src) {
if (StringUtil.isEmpty(s)) {
continue;
}
s = s.trim();
for (String d : dest) {
if (StringUtil.isEmpty(d)) {
continue;
}
if (s.equals(d.trim())) {
return true;
}
}
}
return false;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值