【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
- System.arraycopy(...) 用法
- Arrays.copyOf 函式函式
- System.arraycopy方法解釋
- 轉載:System:System.arraycopy方法詳解
- Java SE, Java EE, Java MEJava
- Java 解惑(Java Puzzler)Java
- 【Java】A Guide to the Java ExecutorServiceJavaGUIIDE
- 【Java】The Java Headless ModeJava
- JAVA java學習(24)——————java修飾符Java
- Java 陣列、Java 日期時間、Java 正規表示式、Java 方法Java陣列
- 【Java筆記】Java JDKJava筆記JDK
- 淺析Java反射--JavaJava反射
- Java 8 + 10 = Java 18Java
- Java 安全之Java AgentJava
- Java筆記-Java反射(二)Java筆記反射
- Java基礎類庫【Java】Java
- Java基礎系列—Java反射Java反射
- Java:Java的物件導向Java物件
- java分散式(java入門)Java分散式
- Java學習—java-RedisJavaRedis
- JAVA-java日期工具類Java
- Treasure Of JAVA——JAVA的資料型別(JAVA面試題)Java資料型別面試題
- JAVA學習筆記—JAVA WEB(二)JAVA WEB核心(下)Java筆記Web
- JavaJava
- ```javaJava
- 《Effective Java》--Java進階必備Java
- java原始碼-java.util.ListJava原始碼
- 【Java反射】Java 泛型基礎Java反射泛型
- 【java學習】JDK(Java Development Kit)JavaJDKdev
- 【Java】Java計時器(秒錶)Java
- 【java提高】(17)---Java 位運算子Java
- ?Java基礎之Java列舉Java
- [JAVA] Java switch的使用細節Java
- Java進階--Java動態代理Java
- java,javac,java -version的區別Java