我实际上是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());
}
}
}
答案 0 :(得分:2)
算法的大O复杂度为O(N)
,其中N
是数组大小。你无法改进...提供的参数和产生相同的输出。
虽然可以采取一些措施来提高效率。
还有一两个可疑的微优化,但看看你是否可以在没有任何提示的情况下发现它们。 (我说“有问题”,因为我怀疑JIT编译器会自己做同样的优化。)
最后要注意的是:代码的实际速度将由print
语句控制,以及操作系统将内容写入(例如)控制台的能力。并且可能是由JVM启动/预热效果......除非多次调用fnc
方法。
1 - 尽管如此,new Integer(...)
是将int
转换为Integer
的错误方法。