Java中的Arrays.fill复杂度

Gan*_*h D 2 java arrays time-complexity

如何Arrays.fill(char[] a,char val)实现内部java

它的复杂性是什么?

Vik*_*yap 6

如果您查看Class 中fill(char[] a, char val)可用的定义java.util.Arrays

就是这样

public static void fill(Object[] a, Object val) {
        for (int i = 0, len = a.length; i < len; i++) //this loop will continues to the length of a.
            a[i] = val;
    }
Run Code Online (Sandbox Code Playgroud)

因此,此方法的复杂度为O(n)。其中nObject[] a您传递给参数的对象数组的长度。


小智 6

Java 实现使用一个简单的for循环。但是,重要的是要记住 JVM 经常对内部功能进行重大更改,并且经常在运行时用较低级别的实现替换整个方法和类。

通常,取决于目标系统,Arrays.fill可以用更像 C/C++ 的memset函数的东西替换,因此,它通常比常规for循环运行得快得多。

在所有情况下(如 Vikrant 的回答所述),复杂性应被视为 O(N),其中 N 是要设置的元素总数。