优化Java代码以降低复杂性

时间:2017-06-19 11:53:16

标签: java optimization java-8 libraries

我实际上是java库的新手。我不知道这段代码在做什么。 我被赋予了优化这一任务的任务。任何帮助都会有用。

我的意思是询问str.equals(local)是否检查for循环中特定索引值的整个字符串aur。

public void fnc(String str, int[] ar1)
    {
        String local = "findnumber";
        for(int i=0; i<ar1.length; i++)
        {
            if(str.equals(local) && ar1[i] * 2 > 10) 
            {
                Integer ip = new Integer(ar1[i]);
                ip = ip * 2;
                System.out.print(ip.toString());
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

算法的大O复杂度为O(N),其中N是数组大小。你无法改进...提供的参数和产生相同的输出。

虽然可以采取一些措施来提高效率。

  • 提示:寻找可以执行一次的每次循环迭代执行的计算。
  • 提示:寻找一些不必要的对象创建 1
  • 提示:不必要的使用引用类型。

还有一两个可疑的微优化,但看看你是否可以在没有任何提示的情况下发现它们。 (我说“有问题”,因为我怀疑JIT编译器会自己做同样的优化。)

最后要注意的是:代码的实际速度将由print语句控制,以及操作系统将内容写入(例如)控制台的能力。并且可能是由JVM启动/预热效果......除非多次调用fnc方法。

1 - 尽管如此,new Integer(...)是将int转换为Integer的错误方法。