`
laodizhuq
  • 浏览: 26188 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

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

今天再发一个代码级别的优化点,就是业务意义不一样但功能一样,却有着两份代码:
    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;
    }
4
2
分享到:
评论
4 楼 laodizhuq 2010-03-11  
代码优化本来就是一个循序渐进的过程,又不可能一步到位的,只能是你在不断的熟悉系统不断的发现问题,然后不断的去完善它。
3 楼 zkgale 2010-03-02  
这种简单的,能一眼看出来的还好...稍微与业务或复杂点的,你不对整体有个把握的话,你能看出来?
2 楼 chris_in 2010-02-26  
[/quote
1 楼 ren 2010-02-26  
common-lang中没有相应util-methods吗??

相关推荐

    HTML 代码优化原理与技巧.rar

    4. 避免空格和注释:多余的空格、换行符和注释会增加文件大小,虽然看似微不足道,但累积起来效果明显。 二、头部优化 1. 优先加载内容:将重要的脚本和样式表放在文档头部,确保在HTML渲染时能立即应用,但应避免...

    MEA-BP_MEA_mea优化bp代码_MEA-BP神经网络_mea-bp_BP_源码.zip

    描述中的内容看似重复了标题,实际上是在强调这是一个关于MEA优化BP神经网络的代码实现。这意味着包含的源码可能包括了MEA-BP算法的完整实现,涵盖了从网络结构定义、训练过程到损失函数计算等关键部分。这样的代码...

    21丨理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?1

    代码执行重复则指的是在程序的不同位置执行了相同的代码块,比如在多个地方都进行了数据库查询。这种情况可以通过引入缓存、服务层或者存储过程来优化。 提高代码复用性的策略包括: 1. **模块化**:将相关的代码...

    0-99的不重复随机数

    4. **优化考虑**:当生成大量不重复随机数时,我们可能需要考虑性能优化。例如,如果n接近99,那么上述方法可能会因为频繁的集合操作而变慢。这时,可以改用更高效的算法,如Fisher-Yates洗牌算法,对0-99的全集进行...

    KEIL C51代码优化详细分析

    在某些情况下,这些优化可能导致编译器错误地删除看似重复但实际上必要的代码,例如对同一端口的连续读取。 在特定案例中,开发者试图连续读取地址0x8000处的外设数据。初始定义如下: ```c unsigned char xdata ...

    funsou_v28.zip_重复控制

    混沌理论是研究复杂动态系统的学科,尽管这些系统的运动看似随机无序,但实际上却遵循着某种内在的确定性规律。混沌可以帮助模拟退火算法在搜索全局最优解的过程中生成更加随机、更加广泛的状态空间,从而避免在优化...

    重构-改善既有代码的设计+中文版.pdf

    重构可以在很多方面进行,例如将代码从一个类转移到另一个类,或把某些代码提出来形成独立的函数,甚至重新组织代码到不同的继承体系中去。Martin Fowler在书中详细地讲解了何时应该进行重构,如何进行重构,以及...

    三项双闭环的LLC仿真的代码,是仿真的代码

    【描述】中提到的信息重复,没有提供额外的知识点,但可以理解为强调这是一个关于仿真代码的资源。 【标签】“LLC”直接关联到LLC谐振转换器,这是电力电子领域的一个重要主题,常用于DC-AC逆变器、DC-DC转换器等...

    求简易的代码

    然而,描述中的内容较为模糊,没有具体说明需要何种类型的代码或者代码要实现什么功能,这在实际的IT交流中是不够明确的,因为不同的编程任务可能需要截然不同的代码结构和逻辑。 在标签部分,“11”并没有提供太多...

    产生20个不重复的随机数的代码

    在IT领域,生成不重复的随机数序列是一个常见的需求,尤其是在需要进行随机抽样、数据模拟或游戏开发等场景中。下面将详细解析如何通过编程实现这一目标,并...通过不断实践和优化,可以更好地满足不同场景下的需求。

    代码大全4

    - **编译器优化挑战**:无条件的goto语句使编译器难以预测程序流程,从而降低了代码优化的能力,即便源代码看似高效,编译后的执行效率也可能大打折扣。 ##### 支持goto的观点 - **特定场景下的优势**:支持者认为...

    34丨 实战一(上):通过一段ID生成器代码,学习如何发现代码质量问题1

    这个实现看似简单,但存在一些潜在的问题和优化空间。 1. **代码可读性**:虽然代码实现了功能,但可读性有待提高。例如,可以添加注释来解释代码的目的和工作原理,帮助其他开发者理解。 2. **异常处理**:获取...

    sonarqube.cpd.false.positives:sonarqube中重复代码的误报示例

    3. **代码审查:**对报告的重复代码进行人工审查,确认是否真的是误报,必要时进行合并或优化。 4. **使用注释:**在代码中添加适当的注释,解释为何会有重复,有助于避免未来误报和理解代码。 5. **反馈给SonarQube...

    C#.Code.Builder.V1.2.(C#代码生成器).产生支持多种数据库的实体代码

    开发代码生成器虽然可能在小规模项目中看似效率不高,但在大规模项目中,其价值在于能快速产生大量基础代码,让开发者可以专注于更有创造性的工作。通过分享源代码,作者希望初学者能从中学习并提高代码质量,同时...

    c# 石英钟 源代码

    【描述】"c# 生肖速查 源代码"重复多次,虽然看似与标题不完全一致,但可以推测可能项目中包含了与生肖查询相关的功能。生肖速查可能是该石英钟应用的一个附加特性,允许用户快速查询中国传统的十二生肖信息,如生肖...

    JS完成代码前最好对其做5件事

    重构的目的通常是为了提高代码的可读性和可维护性,同时减少重复代码,优化性能。例如,上述代码中的逻辑可以进一步抽象成函数,以便在需要的时候复用相同的逻辑。 总结来说,在编写JavaScript代码时,应当考虑代码...

    一行代码比较时间大小

    此外,为了增强代码的可读性和可维护性,可以将重复的代码片段封装成函数,避免代码冗余。 ### 结语 通过上述分析,我们可以看到,即使是一行看似简单的代码,背后也蕴含着深刻的技术原理和编程智慧。掌握这些技巧...

    2023的测试代码,没有任何用处,只是不想丢掉

    这些信息对于未来的调试和优化工作非常有价值,能够帮助开发者避免重复犯同样的错误。 2. **代码重构与维护**:有时候,看似无用的代码可能是遗留下来的,它们可能是未来代码重构的基础,或者是某一历史版本的备份...

    Java代码性能优化的35个方法总结

    在Java开发中,代码性能优化是一项至关重要的...记住,代码优化就像喂饱鲸鱼的小虾米,虽然单个优化看似微不足道,但积累起来的效果不容忽视。在有足够时间和资源的情况下,深入优化代码,对于提升整体性能至关重要。

Global site tag (gtag.js) - Google Analytics