对于最多10个元素的数组:for loop copy或System.arrayCopy?

Rok*_*okL 2 java arrays copy

假设Java中有10个或更少的Object [],那么复制数组的最快方法是什么?

  1. for(int i = 0;i < a.length;i++)
    
    Run Code Online (Sandbox Code Playgroud)
  2. for(int i = 0,l = a.length;i < l;i++) // i.e. is caching array len in local var faster?
    
    Run Code Online (Sandbox Code Playgroud)
  3. System.arrayCopy(a, 0, a2, 0, a.length);
    
    Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 5

  1. 可能性是三种替代方案之间的差异相对较小.

  2. 这可能与您的应用程序的整体性能无关.

  3. 相对差异可能取决于您使用的硬件平台和Java的实现.

  4. 相对差异也将根据数组的声明和实际类型而变化.

你最好忘记这一点,然后编写一个对你来说最自然的方式.如果您发现已完成的应用程序运行速度太慢,请根据分析结果对其进行分析和调整.在一点上,尝试三种替代方案可能是值得的,看看哪种方法对于您的应用程序的特定用例更快.(另一种方法可能是首先避免阵列复制是否明智.)