java陣列的四種拷貝方法的效能分析:for、clone、System.arraycopy、Arrays.copyof
執行結果: 當我把size改為10時,執行結果如下:package JavaNukeTest; import java.util.Arrays; public class ArrayCopyTest { public static final int size = 10000; public static void copyByClone(String[] strArray){ long startTime = System.nanoTime(); String[] destArray = strArray.clone(); long endTime = System.nanoTime(); System.out.println("copyByClone cost time is "+(endTime - startTime)); } public static void copyByLoop(String[] strArray){ long startTime = System.nanoTime(); String[] destArray = new String[size]; for (int i = 0; i < strArray.length; i++){ destArray[i] = strArray[i]; } long endTime = System.nanoTime(); System.out.println("copyByLoop cost time is "+(endTime - startTime)); } public static void copyByArrayCopy(String[] strArray){ long startTime = System.nanoTime(); String[] destArray = new String[size]; System.arraycopy(strArray, 0, destArray, 0, strArray.length); long endTime = System.nanoTime(); System.out.println("copyByArrayCopy cost time is "+(endTime - startTime)); } public static void copyByCopyof(String[] strArray){ long startTime = System.nanoTime(); String[] destArray = Arrays.copyOf(strArray, strArray.length); long endTime = System.nanoTime(); System.out.println("copyByCopyof cost time is "+(endTime - startTime)); } public static void main(String[] args) { // TODO Auto-generated method stub String[] strArray = new String[size]; for (int i = 0; i < size; i++){ strArray[i] = "abc"; } copyByClone(strArray); copyByLoop(strArray); copyByArrayCopy(strArray); copyByCopyof(strArray); } }
當我把size改為100時,執行結果如下:
當我把size改為1000時,執行結果如下:
也就是說,當陣列元素個數不是很大時,使用for來複制陣列,時間效能是最好的,clone次之,其次是System.arraycopy,最差的是Arrays.copyof。 當陣列元素個數很大時,使用System.arraycopy複製陣列,時間效能是最好的,clone次之,其次是Arrays.copyof,最差的就是for。
相關推薦
java陣列的四種拷貝方法的效能分析:for、clone、System.arraycopy、Arrays.copyof
今天作者就Java陣列的拷貝方法進行效能比較,多有不足,請大家指正!!! 1.for方法,用迴圈依次實現陣列元素的拷貝。 2.clone方法,是Object類的方法,用來實現物件的複製操作。 3.System.arraycopyof方法,是System的靜態方法,是一個na
Java陣列3種排序方法
一、陣列封裝好的排序方法 public static void main(String[] args) { i
Java中 System.arraycopy() 和 Arrays.copyOf()方法
index 成員 size obj lis sco 方法測試 新建 -a System.arraycopy() 和 Arrays.copyOf()方法 閱讀源碼的話,我們就會發現 ArrayList 中大量調用了這兩個方法。比如:我們上面講的擴容操作以及add(int in
Java中System.arraycopy()和Arrays.copyOf()的區別
System.arraycopy() 這是一個由java標準庫提供的方法。用它進行復制陣列比用for迴圈要快的多。 arraycopy()需要的引數有:源陣列,從源陣列中的什麼位置開始複製的偏移量,
java四種拷貝方式及常見的陣列操作方法
一、四種拷貝方式 要確定一個方法是淺拷貝還是深拷貝,必須用引用型別的值,所以要用物件定義陣列,以下四種方法的程式碼中都用物件定義了陣列以確定拷貝型別 1.for迴圈拷貝 class TestArray { private int val = 10; public
java陣列的四種拷貝方式
拷貝陣列方式 深拷貝/淺拷貝 是否產生新的物件 備註 for迴圈拷貝 淺拷貝 否 拷貝速度最慢 clone拷貝陣列
Java 字串拼接四種方式的效能比較分析
一、簡單介紹 編寫程式碼過程中,使用"+"和"contact"比較普遍,但是它們都不能滿足大資料量的處理,一般情況下有一下四種方法處理字串拼接,如下: 1、 加號"+" 2、 String的 contact()方法 3、 StringBuffer 的 append()方法 4、 StringBuil
java 陣列 、 for each迴圈, 陣列的兩種拷貝方法 ,Arrays.copyOf(),Arrays.toString[],匿名陣列
陣列是一種資料結構,陣列不一定裡面是數,也可以是char,String,boolean,int,double 陣列通過一個整型下標可以訪問陣列中每一個值。例如a是一個整形陣列,則a[i]就是陣列中下標為i的整數。 在宣告(區別於建立)陣列時,需要指出陣列型別
js 數組的深度拷貝 的四種實現方法
實現 個人總結 對象 () tro logs json 錯誤 深度拷貝 首先聲明本人資質尚淺,本文只用於個人總結。如有錯誤,歡迎指正、共同提高。 --------------------------------------------------------------
Java 中的四種引用使用場景分析
強引用 強引用的物件,永遠不會被垃圾回收,JVM 寧願丟擲 OutOfMemeory 錯誤也不會回收這種物件。 軟引用 soft 沒有強引用而只有軟引用的物件,只要記憶體空間足夠,垃圾回收器就不會回收(嚴謹的說法是,GC 根據記憶體使用情況酌情考慮什麼時候回收)。 MyO
C 中判斷空字串的3種方法效能分析【月兒原創】
C#中判斷空字串的3種方法效能分析 作者:清清月兒 主頁:http://blog.csdn.net/21aspnet/ 時間:2007.4.28 3種方法分別
C#中判斷空字串的3種方法效能分析【月兒原創】
C#中判斷空字串的3種方法效能分析作者:清清月兒 3種方法分別是:string a="";1.if(a=="")2.if(a==String.Empty)3.if(a.Length==0)3種方法都是等效的,那麼究竟那一種方法效能最高呢?本人用實驗說明問題。建立3個aspx頁
陣列的四種拷貝方式
陣列的拷貝方式有四種,分別是: for迴圈 clone() System.arraycopy() Arrays.copyof() 一維陣列 for迴圈 拷貝數值型別 int[] array = {1,2,3,4,5,6}
JAVA之多執行緒概念及其幾種實現方法優劣分析
1. 多執行緒 程式:指令集,靜態的概念 程序:作業系統調動程式,是程式的一次動態執行過程,動態的概念 執行緒:在程序內的多條執行路徑 Ps:單核的話程序都是虛擬模擬出來的,多核處理器才可以執行真正的多執行緒 單核通過CPU排程時間片實現虛擬模擬的多執行緒,比如執行main函式和GC在底層就是多執行
Java的四種保留小數點方法
1.前言 在java的學習中,往往演算法有一個是屬於java的小數點位數保留。 一般有四種方式,如下: package java_stu; /** * @see java保留小數點示例 * */ import java.math.BigDecim
陣列的四種複製方法
java陣列拷貝主要有四種方法,分別是迴圈賦值,System.arraycopy(),Arrays.copyOf()(或者Arrays.copyOfRange)和clone()方法。下面分別介紹一下這幾種拷貝。 迴圈拷貝(速度相對比較慢) 迴圈拷貝其實沒什麼好說的啦,就是用
java中四種許可權修飾符,靜態程式碼塊,構造程式碼塊,構造方法執行順序。
一、java中類有四種許可權 1、要想僅能在本類中訪問使用private修飾。 2、要想本包中的類都可以訪問不加修飾符即可。 3、要想本包中的類與其他包中的子類可以訪問使用protected修飾。(不在同一包中時,只能在子類裡面可以呼叫,其他測試類建物件都不行,只給不同包中的子
JAVA中四種常見建立物件方法
一、使用new關鍵字 這是我們最常見的也是最簡單的建立物件的方式,通過這種方式我們還可以呼叫任意的夠贊函式(無參的和有參的)。 比如:Student student = new Student(); 二、呼叫物件的clone的方法 無論何時我們呼叫一
JS幾種陣列遍歷方式和效能分析對比
JS陣列遍歷的幾種方式 JS陣列遍歷,基本就是for,forin,foreach,forof,map等等一些方法,以下介紹幾種本文分析用到的陣列遍歷方式以及進行效能分析對比 第一種:普通for迴圈 程式碼如下: for(j = 0; j < arr.length; j++) { }
Java四種排序方法及99乘法口訣表
import java.util.Arrays; public class Sort { /**排序 * @param args */ public static void main(String[] args) { int array[]={12,3