java或判断优化小技巧

简介: 写业务代码的时候,我们经常要做条件判断,有的时候条件判断的或判断长达20多个。reg.equals("1") || reg.equals("2") || reg.equals("3")||.....是不是很奔溃 1,这个时候代码维护不好维护,字段一多对字段就会出错。

写业务代码的时候,我们经常要做条件判断,有的时候条件判断的或判断长达20多个。reg.equals("1") || reg.equals("2") || reg.equals("3")||.....是不是很奔溃

1,这个时候代码维护不好维护,字段一多对字段就会出错。

2,在最差情况下,执行语句要对这20个判断都判断一下才知道最终的结果,在高性能业务下发挥并不好。

这个时候我们可以用map或set来进行判断,因为hashmap是一个hash桶,查找的效率是比较快的,不管判断任何值他的查询效率基本稳定。

当然最好指定hashmap的长度和判断的元素一样多,这样就避免对某一个桶内衍生出链表了。

例子如下,大家可以试一试。

/**
 * @author:YangLiu
 * @date:2018年3月22日 上午10:06:25
 * @describe:
 */
public class ifMap {

    public static Map<String, String> ISJACARD = new HashMap<String, String>(20) {
        {
            put("1", "");
            put("2", "");
            put("3", "");
            put("4", "");
            put("5", "");
            put("6", "");
            put("7", "");
            put("8", "");
            put("9", "");
            put("11", "");
            put("12", "");
            put("13", "");
            put("14", "");
            put("15", "");
            put("16", "");
            put("17", "");
            put("18", "");
            put("19", "");
            put("21", "");
            put("22", "");
            put("23", "");
            put("24", "");
            put("25", "");
            put("26", "");
            put("27", "");
            put("28", "");
            put("29", "");
        }
    };

    public static void main(String[] args) {

        String reg = "13";
        long start = System.currentTimeMillis();
        for (int i = 0; i < 100000000; i++) {
            if (reg.equals("1") || reg.equals("2") || reg.equals("3")
                    || reg.equals("4") || reg.equals("5") || reg.equals("6")
                    || reg.equals("7") || reg.equals("8") || reg.equals("9")
                    || reg.equals("19") || reg.equals("18") || reg.equals("17")
                    || reg.equals("16") || reg.equals("15") || reg.equals("14")
                    || reg.equals("13") || reg.equals("12") || reg.equals("11")) {
            }
        }
        System.out.println(System.currentTimeMillis() - start);

        start = System.currentTimeMillis();
        for (int i = 0; i < 100000000; i++) {
            if (ISJACARD.containsKey(reg)) {

            }
        }
        System.out.println(System.currentTimeMillis() - start);
    }

}

 

作者: intsmaze(刘洋)
老铁,你的--->推荐,--->关注,--->评论--->是我继续写作的动力。
微信公众号号:Apache技术研究院
由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
14天前
|
存储 缓存 算法
优化 Java 后台代码的关键要点
【4月更文挑战第5天】本文探讨了优化 Java 后台代码的关键点,包括选用合适的数据结构与算法、减少不必要的对象创建、利用 Java 8 新特性、并发与多线程处理、数据库和缓存优化、代码分析与性能调优、避免阻塞调用、JVM 调优以及精简第三方库。通过这些方法,开发者可以提高系统性能、降低资源消耗,提升用户体验并减少运营成本。
|
15天前
|
Java
深入理解Java并发编程:线程池的应用与优化
【4月更文挑战第3天】 在Java并发编程中,线程池是一种重要的资源管理工具,它能有效地控制和管理线程的数量,提高系统性能。本文将深入探讨Java线程池的工作原理、应用场景以及优化策略,帮助读者更好地理解和应用线程池。
|
30天前
|
监控 Java
Java并发编程中的线程池优化技巧
在Java并发编程中,线程池扮演着至关重要的角色。本文将深入探讨如何优化Java线程池,从线程池的创建与配置、任务队列的选择、拒绝策略的制定、线程池状态的监控等多个方面进行详细阐述。通过本文的阅读,您将了解到如何合理地利用线程池,提高系统的并发性能,从而更好地应对各种并发场景。
|
3天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
5天前
|
Java 程序员 编译器
Java中的线程同步与锁优化策略
【4月更文挑战第14天】在多线程编程中,线程同步是确保数据一致性和程序正确性的关键。Java提供了多种机制来实现线程同步,其中最常用的是synchronized关键字和Lock接口。本文将深入探讨Java中的线程同步问题,并分析如何通过锁优化策略提高程序性能。我们将首先介绍线程同步的基本概念,然后详细讨论synchronized和Lock的使用及优缺点,最后探讨一些锁优化技巧,如锁粗化、锁消除和读写锁等。
|
5天前
|
Java 编译器
Java并发编程中的锁优化策略
【4月更文挑战第13天】 在Java并发编程中,锁是一种常见的同步机制,用于保证多个线程之间的数据一致性。然而,不当的锁使用可能导致性能下降,甚至死锁。本文将探讨Java并发编程中的锁优化策略,包括锁粗化、锁消除、锁降级等方法,以提高程序的执行效率。
12 4
|
11天前
|
设计模式 缓存 安全
分析设计模式对Java应用性能的影响,并提供优化策略
【4月更文挑战第7天】本文分析了7种常见设计模式对Java应用性能的影响及优化策略:单例模式可采用双重检查锁定、枚举实现或对象池优化;工厂方法和抽象工厂模式可通过对象池和缓存减少对象创建开销;建造者模式应减少构建步骤,简化复杂对象;原型模式优化克隆方法或使用序列化提高复制效率;适配器模式尽量减少使用,或合并多个适配器;观察者模式限制观察者数量并使用异步通知。设计模式需根据应用场景谨慎选用,兼顾代码质量和性能。
|
14天前
|
Java 编译器
Java并发编程中的锁优化策略
【4月更文挑战第5天】随着多核处理器的普及,并发编程在提高程序性能方面发挥着越来越重要的作用。在Java中,锁是实现并发控制的关键机制。本文将探讨Java并发编程中的锁优化策略,包括锁粗化、锁消除、锁排序等技术,以提高程序的执行效率和降低资源争用。
|
24天前
|
算法 安全 Java
Java中的并发编程优化探究
本文深入探讨了Java中的并发编程优化策略,从锁机制到线程池的使用,以及常见的并发问题与解决方案。通过分析不同的优化方法,帮助开发者更好地应对并发环境下的挑战,提高程序性能和稳定性。
11 0
|
25天前
|
安全 Java
Java中的并发编程优化技巧
在当今软件开发领域中,多线程并发编程已经成为不可或缺的一部分。本文将探讨在Java编程中如何优化并发操作,提高程序性能和可靠性的关键技巧。
11 0