1. 程式人生 > >Arrays 的copyOf()方法講解

Arrays 的copyOf()方法講解

                                      Arrays 的copyOf() 

在進階陣列中,我們談到了陣列複製,您可以使用System.arraycopy()方法來進行陣列複製:

int[] arr1 = {1, 2, 3, 4, 5};
           int[] arr2 = new int[5];

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

這個方式必須明確自行新建立一個數組物件。在JDK 6中,新增了copyOf()方法,可以直接傳回一個新的陣列物件,而當中包括複製的內容,例如:

ArrayDemo.java

import java.util.Arrays;

public class ArrayDemo {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5}; 
int[] arr2 = Arrays.copyOf(arr1, arr1.length);

for(int i = 0; i < arr2.length; i++) 
System.out.print(arr2[i] + " "); 
System.out.println();
}
} 

執行結果:

1 2 3 4 5

Arrays的copyOf()方法傳回的陣列是新的陣列物件,所以您改變傳回陣列中的元素值,也不會影響原來的陣列。

copyOf()的第二個自變數指定要建立的新陣列長度,如果新陣列的長度超過原陣列的長度,則保留陣列預設值,例如:

ArrayDemo.java

import java.util.Arrays;

public class ArrayDemo {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5}; 
int[] arr2 = Arrays.copyOf(arr1, 10);

for(int i = 0; i < arr2.length; i++) 
System.out.print(arr2[i] + " "); 
System.out.println();
}
} 

執行結果:

1 2 3 4 5 0 0 0 0 0

相關推薦

ArrayscopyOf()方法講解

                                      Arrays 的copyOf()  在進階陣列中,我們談到了陣列複製,您可以使用System.arraycopy()方法來進行陣列複製: int[] arr1 = {1, 2, 3, 4, 5};

Arrays.copyOf() 方法理解

最近看線性表、棧、佇列資料結構實現原始碼時,經常看到 Arrays.copy()、System.arraycopy() 方法,以下稍作整理。 Array.copyOf() 用於複製指定的陣列內容以達到擴容的目的,該方法對不同的基本資料型別都有對應的過載方法,詳見

java.lang.System下的arraycopy和java.util.Arrays.copyOf方法

(1) java.lang.System.arraycopy public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 問題:方

Java中 System.arraycopy() 和 Arrays.copyOf()方法

index 成員 size obj lis sco 方法測試 新建 -a System.arraycopy() 和 Arrays.copyOf()方法 閱讀源碼的話,我們就會發現 ArrayList 中大量調用了這兩個方法。比如:我們上面講的擴容操作以及add(int in

關於Java 拷貝數組方法 Arrays.copyOf() 是地址傳遞還是值傳遞

clone images java 地址 tput mage alt 元素 color 基本元素為對象時,淺拷貝,拷貝引用(ArrayList 的clone()調用Arrays.copyof(),官方文檔註明為淺拷貝) class A{ int

關於Java 拷貝陣列方法 Arrays.copyOf() 是地址傳遞還是值傳遞

在看別人的關於 CopyOnWriteArrayList 這個類的時候,看到有人提出了關於:陣列拷貝的方法Arrays.copyOf() 的問題,如下: 只是複製了引用地址,陣列內的物件還是和舊陣列一樣的? 看了他的問題,我也是有點迷惑了,以前都沒想過這個。既然如此,我就有如

java陣列的四種拷貝方法的效能分析:for、clone、System.arraycopy、Arrays.copyof

今天作者就Java陣列的拷貝方法進行效能比較,多有不足,請大家指正!!! 1.for方法,用迴圈依次實現陣列元素的拷貝。 2.clone方法,是Object類的方法,用來實現物件的複製操作。 3.System.arraycopyof方法,是System的靜態方法,是一個na

Arrays複製-方法copyOf()

Arrays陣列copy Arrays提供了陣列拷貝的方法copyOf public static char[] copyOf(char[] original, int newLength);

Java方法之--System.arraycopy方法Arrays.copyOf()

System.arraycopy方法:如果是陣列比較大,那麼使用System.arraycopy會比較有優勢,因為其使用的是記憶體複製,省去了大量的陣列定址訪問等時間 public static native void arraycopy(Object src, int

java 陣列 、 for each迴圈, 陣列的兩種拷貝方法Arrays.copyOf(),Arrays.toString[],匿名陣列

陣列是一種資料結構,陣列不一定裡面是數,也可以是char,String,boolean,int,double 陣列通過一個整型下標可以訪問陣列中每一個值。例如a是一個整形陣列,則a[i]就是陣列中下標為i的整數。 在宣告(區別於建立)陣列時,需要指出陣列型別

JDK5的新特性之可變參數&Arrays.asList()方法

main andro arr array public add exce pub jdk5 【代碼】 1 package com.hxl; 2 3 import java.util.Arrays; 4 import java.util.List; 5 6

System.arraycopy和arrays.copyOf

代碼 類型 obj stp component 個數 底層 div color public static native void arraycopy(Object src, int srcPos,            Obj

Python_021(內置方法講解二)

most def bsp efi trac pan div () python 一.內置方法二 1.__del__方法:   a:構造方法:創建一個空間, 析構方法;釋放一個空間;   b:觸發del的情況:Python解釋器的垃圾回收機制,和遇到 del 對象名 c:析

關於Java中的Arrays.copyOfRange()方法

               關於Java中的Arrays.copyOfRange()方法   轉載:https://blog.csdn.net/babylorin/article/details/67

Arrays.asList()方法

首先,Arrays.asList()方法是將陣列轉化為list,有以下幾點需要注意:   (1)該方法不適用於基本資料型別(byte,short,int,long,float,double,boolean)   (2)該方法將陣列與列表連結起來,當更新其中之一時,另一個自動更新   (3

toString方法講解

 重寫toString方法         1、 為什麼要重寫toString方法?           &n

equals方法講解

equals方法:比較記憶體地址 Object類中的equals方法              用於比較兩個物件是否相同,Object類中就是使用兩個物件的記憶體地址在比較。 &n

JavaSE--Arrays.copyof

背景: 想偷懶一次陣列賦值下面多個例子複製下陣列就好了.. 以為 Arrays.copyof(Arrays.copyof內部呼叫的是 System.copy, 所以同 Arrays.copy)拷貝出來的陣列和原來的陣列是獨立不干擾的. 然後就悲劇了..   原來copy之後的陣列指向原

手把手教你ExtJS從入門到放棄——篇三(Ext.MessageBox工具類常用方法講解)

Ext.MessageBox是一個工具類,提供了各種風格的資訊提示對話方塊,也可以簡寫為Ext.Msg,這在Ext中很常見,很多元件或類都可以使用簡寫形式。 alert方法 confirm方法 prompt方法 wait方法 及自定義提示框show方法 學習意見:學習ExtJS是一個長期積累

手把手教你ExtJS從入門到放棄——篇十八(示例15:Ext.Object的方法講解,chain,each,fromQueryString,getKey,getKeys,getSize等...)

開啟API,可以看到如下,si'ngleton :單例,下面十個方法開發中都常用,下面將一一用程式碼講解 1.chain( Object object ) 使用給定物件作為原生鏈返回一個新物件。 ... 原型物件:主要作用就是給物件原型新增新的屬