Arrays.fill java中的复杂性

时间:2016-04-22 05:02:27

标签: java arrays time-complexity

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

它的复杂性是什么?

2 个答案:

答案 0 :(得分:5)

如果您查看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;
    }

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

答案 1 :(得分:2)

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

通常,根据目标系统,Arrays.fill可以替换为更像C / C ++的memset函数,因此,它通常比常规{{1}更快地运行}循环。

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