java - java中Arrays.setAll对性能有什么影响?

标签 java

我创建了一个简单地填充 Integer[] 对象数组的方法,我想知道使用内置 Java 方法 Arrays.setAll 是否会有性能差异:

private static Integer generate_number(){
    return random.nextInt(9000);
}
    
public static void fill_array_with_randNumbers(Integer[] array){
    Arrays.setAll(array, i -> generate_number());
}

并以旧时尚的方式进行:

private static Integer generate_number(){
    return random.nextInt(9000);
}

public static void fill_array_with_randNumbers(Integer[] array){
    for(int i = 0; i < array.length; i++) {
        array[i] = generate_number();
    }
}

最佳答案

不,如果你检查Arrays的java源代码,没有什么区别。它还使用循环来设置变量。

/**
  * @param <T> type of elements of the array
  * @param array array to be initialized
  * @param generator a function accepting an index and producing the desired
  *        value for that position
  * @throws NullPointerException if the generator is null
  * @since 1.8
  */
public static <T> void setAll(T[] array, IntFunction<? extends T> generator) {
    Objects.requireNonNull(generator);
    for (int i = 0; i < array.length; i++) {
         array[i] = generator.apply(i);
    }
}

https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Arrays.java

关于java - java中Arrays.setAll对性能有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70515068/

相关文章:

java - 如何处理 Netty 中缓慢的读取器?

java - 如何从 Android、Qualcomm 设备获取 RF/NV 项目?

Java 应用程序使用两个独立的信任库

java - 为什么 Java 不提供运算符重载?

java - 实现 LSResourceResolver 以递归读取 XSD 集

java - Jtable 复选框不可编辑

java - 泛型类型上限本身就是泛型

java - 让 stringTokenizer 将一行文本拆分为预定义变量的最佳方法是什么

java - 错误的 xml block 3 线性布局和 2 日历

java - 将 Hazelcast 配置导出到文件