Arrays.copyOf()和System.arrayCopy()的区别
程序员文章站
2024-02-17 12:33:30
...
在看ArrayList源码时看见,当扩容时采取的是Arrays.copyOf(),插入或删除时使用的是System.arrayCopy()
认为这两者之间的主要区别是Arrays.copyOf()在复制数组的元素是会创建一个新的数组,返回类型是数组,System.arrayCopy()值复制到已经存在的数组中去,返回类型是void
看copyOf源码发现,其实前者调用了后者
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
@SuppressWarnings("unchecked")
T[] copy = ((Object)newType == (Object)Object[].class)
? (T[]) new Object[newLength]
: (T[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
推荐阅读
-
Arrays.copyOf()和System.arrayCopy()的区别
-
Arrays.copyOf() 和 System.arrayCopy()分析
-
Arrays.CopyOf()和System.arraycopy ()
-
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
-
关于break和continue以及label的区别和作用(详解)
-
详谈Enumeration接口和Iterator接口的区别
-
java 中sendredirect()和forward()方法的区别
-
Oracle中select 1和select *的区别
-
Android Activity中onStart()和onResume()的区别分析
-
SQLSERVER NULL和空字符串的区别 使用NULL是否节省空间