Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用常量值高效初始化数组_Java_Arrays_Initialization - Fatal编程技术网

如何在Java中使用常量值高效初始化数组

如何在Java中使用常量值高效初始化数组,java,arrays,initialization,Java,Arrays,Initialization,有没有一种方法可以在没有for循环的情况下,将整数数组(或任何数组)初始化为除默认值零(或null)以外的常量值 理想情况下,我在matlab中寻找一个类似“one”的函数,它不仅更简洁,而且效率更高。是您所追求的方法。(尽管在内部它仍然使用for循环,因此与System.arrayCopy()不同,它并没有更快。) 注意:数组,以及基于集合的对应类集合通常是两个非常有用的类。在某些实现中,它可能更快,因为JITC知道它可以绕过边界检查。它可能是,但我不知道有哪种JIT实现仅仅因为在`java.

有没有一种方法可以在没有for循环的情况下,将整数数组(或任何数组)初始化为除默认值零(或null)以外的常量值

理想情况下,我在matlab中寻找一个类似“one”的函数,它不仅更简洁,而且效率更高。

是您所追求的方法。(尽管在内部它仍然使用for循环,因此与
System.arrayCopy()
不同,它并没有更快。)


注意:
数组
,以及基于集合的对应类集合通常是两个非常有用的类。

在某些实现中,它可能更快,因为JITC知道它可以绕过边界检查。它可能是,但我不知道有哪种JIT实现仅仅因为在`java.util中就以不同的方式处理相同的代码。你知道一个特定的JIT可以做到这一点吗?我曾经在一个JITC上工作过,我认为更高级的Sun/Oracle JITC也可以做类似的事情,基于间接证据。java中的许多低级例程。包由JIT内部化,因此您在JDK源代码中看到的“引用”实现可能永远不会执行。您可以查看内部函数列表(这里是所有的内部函数)。它目前似乎不包括Arrays.fill,但确实包括来自数组的其他方法。谢谢,这是有用的知识。这些方法几乎总是使用循环。在Matlab中它可以更快的一个原因是它是一种解释语言,而Java可以编译成本地代码。具有讽刺意味的是,java中的一些循环可以进行大量优化,它们比使用本机调用更快。e、 g.使用循环复制
long[]
比使用
System.arrayCopy