Arrays.fill(char[] a,char val)
如何在java
内实施内部?
它的复杂性是什么?
答案 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是所设置元素的总数。