最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java數(shù)組復(fù)制的四種方法效率對比

 更新時間:2017年11月17日 14:44:41   作者:亭之翼  
這篇文章主要介紹了java數(shù)組復(fù)制的四種方法效率對比,文中有簡單的代碼示例,以及效率的比較結(jié)果,具有一定參考價值,需要的朋友可以了解下。

有關(guān)數(shù)組的基礎(chǔ)知識,有很多方面,比方說初始化,引用,遍歷,以及一維數(shù)組和二維數(shù)組,今天我們先看看數(shù)組復(fù)制的有關(guān)內(nèi)容。

來源于牛客網(wǎng)的一道選擇題:

JAVA語言的下面幾種數(shù)組復(fù)制方法中,哪個效率最高?

A.for循環(huán)逐一復(fù)制

B.System.arraycopy

C.System.copyof

D.使用clone方法

效率:System.arraycopy>clone>Arrays.copyOf>for循環(huán)

1、System.arraycopy的用法:

public static void arraycopy(Object src, 
               int srcPos, 
               Object dest, 
               int destPos, 
               int length) 

參數(shù):

src - 源數(shù)組。
srcPos - 源數(shù)組中的起始位置。
dest - 目標(biāo)數(shù)組。
destPos - 目標(biāo)數(shù)據(jù)中的起始位置。
length - 要復(fù)制的數(shù)組元素的數(shù)量

應(yīng)用實例:

public class Main{ 
  public static void main(String[] args) { 
 
     int[] a1={1,2,3,4,5,6}; 
     int[] a2={11,12,13,14,15,16}; 
      
     System.arraycopy(a1, 2, a2, 3, 2); 
     System.out.print("copy后結(jié)果:"); 
     for(int i=0;i<a2.length;i++){ 
       System.out.print(a2[i]+" ");   
     } 
  } 
} 

運行結(jié)果:

2、clone的用法:

java.lang.Object類的clone()方法為protected類型,不可直接調(diào)用,需要先對要克隆的類進行下列操作:

首先被克隆的類實現(xiàn)Cloneable接口;然后在該類中覆蓋clone()方法,并且在該clone()方法中調(diào)用super.clone();這樣,super.clone()便可以調(diào)用java.lang.Object類的clone()方法。

應(yīng)用實例:

//被克隆的類要實現(xiàn)Cloneable接口 
class Cat implements Cloneable  
{
	private String name;
	private int age;
	public Cat(String name,int age) 
	  {
		this.name=name;
		this.age=age;
	}
	//重寫clone()方法 
	protected Object clone()throws CloneNotSupportedException{
		return super.clone() ;
	}
}
public class Clone {
	public static void main(String[] args) throws CloneNotSupportedException {
		Cat cat1=new Cat("xiaohua",3);
		System.out.println(cat1);
		//調(diào)用clone方法 
		Cat cat2=(Cat)cat1.clone();
		System.out.println(cat2);
	}
}

3、復(fù)制引用和復(fù)制對象的區(qū)別

復(fù)制引用:是指將某個對象的地址復(fù)制,所以復(fù)制后的對象副本的地址和源對象相同,這樣,當(dāng)改變副本的某個值后,源對象值也被改變;

復(fù)制對象:是將源對象整個復(fù)制,對象副本和源對象的地址并不相同,當(dāng)改變副本的某個值后,源對象值不會改變;

Cat cat1=new Cat("xiaohua",3);//源對象 
    System.out.println("源對象地址"+cat1); 
    //調(diào)用clone方法,復(fù)制對象 
    Cat cat2=(Cat)cat1.clone(); 
    Cat cat3=(Cat)cat1;//復(fù)制引用 
    System.out.println("復(fù)制對象地址:"+cat2); 
    System.out.println("復(fù)制引用地址:"+cat3); 

輸出結(jié)果:

可以看出,復(fù)制引用的對象和源對象地址相同,復(fù)制對象和源對象地址不同

4、Arrays.copyOf 的用法:

Arrays.copyOf有十種重載方法,復(fù)制指定的數(shù)組,返回原數(shù)組的副本。具體可以查看jdk api

總結(jié)

以上就是本文關(guān)于java數(shù)組復(fù)制的四種方法簡單代碼示例及效率對比的全部內(nèi)容,希望對大家了解數(shù)組復(fù)制的有關(guān)內(nèi)容有所幫助。

相關(guān)文章

  • Java8函數(shù)式接口Predicate用法示例詳解

    Java8函數(shù)式接口Predicate用法示例詳解

    這篇文章主要為大家介紹了Java8函數(shù)式接口Predicate用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • JAVA Static關(guān)鍵字的用法

    JAVA Static關(guān)鍵字的用法

    這篇文章主要介紹了JAVA Static關(guān)鍵字的用法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • java實現(xiàn)坦克大戰(zhàn)游戲

    java實現(xiàn)坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • java8中的lambda表達(dá)式簡介

    java8中的lambda表達(dá)式簡介

    Lambda表達(dá)式類似匿名函數(shù),簡單地說,它是沒有聲明的方法,也即沒有訪問修飾符、返回值聲明和方法名,這篇文章主要介紹了java8?中的lambda表達(dá)式簡介,需要的朋友可以參考下
    2022-06-06
  • SpringMVC結(jié)合Jcrop實現(xiàn)圖片裁剪

    SpringMVC結(jié)合Jcrop實現(xiàn)圖片裁剪

    這篇文章主要介紹了SpringMVC結(jié)合Jcrop實現(xiàn)圖片裁剪的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • SpringMVC表單提交參數(shù)400錯誤解決方案

    SpringMVC表單提交參數(shù)400錯誤解決方案

    這篇文章主要介紹了SpringMVC表單提交參數(shù)400錯誤解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • java中Future使用方法舉例詳細(xì)介紹

    java中Future使用方法舉例詳細(xì)介紹

    Future是java5新加的一個接口,提供了異步并行計算的功能,這篇文章主要介紹了java中Future使用方法紹的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • SpringBoot異步處理的四種實現(xiàn)方式

    SpringBoot異步處理的四種實現(xiàn)方式

    本篇文章我們以SpringBoot中異步的使用(包括:異步調(diào)用和異步方法兩個維度)來進行講解,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java類初始化時機測試方法解析

    Java類初始化時機測試方法解析

    這篇文章主要介紹了Java類初始化時機測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • JAVA中DIFF算法實現(xiàn)

    JAVA中DIFF算法實現(xiàn)

    本文主要介紹了JAVA中DIFF算法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評論

天水市| 石屏县| 洪洞县| 宿迁市| 尖扎县| 苏尼特左旗| 徐汇区| 扎囊县| 肇州县| 奉节县| 壶关县| 专栏| 新邵县| 正安县| 琼海市| 延边| 福海县| 道孚县| 广元市| 蓬安县| 卢氏县| 济宁市| 大邑县| 惠安县| 广宗县| 思茅市| 驻马店市| 普格县| 祁门县| 射阳县| 林甸县| 都兰县| 曲阜市| 孟津县| 宕昌县| 武陟县| 台中市| 海安县| 南宫市| 日照市| 贵阳市|