【Java】Arrays.copyOf & System.arraycopy
public static <T> T[] copyOf(T[] original, int newLength)
@SuppressWarnings("unchecked")
public static <T> T[] copyOf(T[] original, int newLength) {
return (T[]) copyOf(original, newLength, original.getClass());
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;
}
底層還是呼叫System.arraycopy,除此之外,多了一步建立物件(新集合)的過程
public static native void arraycopy
(Object src, int srcPos, Object dest, int destPos, int length);
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
*用於將舊陣列的資料複製到新陣列
src:原陣列(注意這裡是將陣列當成Object物件)
srcPos:原陣列的起始位置
dest:目標陣列
destPos:目標陣列的起始位置
length:要複製的元素個數
相關文章
- System.arraycopy和Arrays.copyOf的原理解剖
- java Arrays.copyOf實現淺複製Java
- System.arraycopy(...) 用法
- Arrays.copyOf 函式函式
- 轉載:System:System.arraycopy方法詳解
- 由 System.arraycopy 引發的鞏固:物件引用 與 物件 的區別物件
- 【JAVA】java使用Java
- JAVA(三)JAVA常用類庫/JAVA IOJava
- Java 解惑(Java Puzzler)Java
- Java打劫(The Java Heist)Java
- JAVA java學習(24)——————java修飾符Java
- Java 陣列、Java 日期時間、Java 正規表示式、Java 方法Java陣列
- Java 安全之Java AgentJava
- 淺析Java反射--JavaJava反射
- Java 8 + 10 = Java 18Java
- 【Java】A Guide to the Java ExecutorServiceJavaGUIIDE
- 【Java】The Java Headless ModeJava
- 【Java筆記】Java JDKJava筆記JDK
- JAVA面試題 java部分Java面試題
- java基礎-java NIOJava
- java之JAVA異常Java
- java日期 java陣列Java陣列
- Java from SUN & Son of JavaJava
- java Java與編碼Java
- Treasure Of JAVA——JAVA的資料型別(JAVA面試題)Java資料型別面試題
- Java筆記-Java反射(二)Java筆記反射
- Java基礎類庫【Java】Java
- Java學習—java-RedisJavaRedis
- Java:Java的物件導向Java物件
- java分散式(java入門)Java分散式
- Java基礎系列—Java反射Java反射
- 《Java專欄》— 初學JavaJava
- 【java基礎】--Java列舉Java
- JAVA面試題-CORE JAVA部分Java面試題
- java "|"Java
- JavaJava
- ```javaJava
- JAVA學習筆記—JAVA WEB(二)JAVA WEB核心(下)Java筆記Web