激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java數(shù)組復(fù)制的四種方法效率對比

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

2021-02-06 12:12亭之翼 Java教程

這篇文章主要介紹了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的用法:

?
1
2
3
4
5
public static void arraycopy(object src,
               int srcpos,
               object dest,
               int destpos,
               int length)

參數(shù):

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

應(yīng)用實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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é)果:

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

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)用實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//被克隆的類要實現(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ù)制后的對象副本的地址和源對象相同,這樣,當改變副本的某個值后,源對象值也被改變;

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

?
1
2
3
4
5
6
7
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é)果:

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

可以看出,復(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)容有所幫助。

原文鏈接:http://blog.csdn.net/tingzhiyi/article/details/52344845

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久亚洲线观看视频 | 九九热精 | 国产片91| 亚洲精品com | 成人久久久精品乱码一区二区三区 | 精品国产乱码久久久久久久久 | 精品国产乱码久久久久久久久 | 毛片免费观看视频 | 日日摸夜夜添夜夜添牛牛 | 草久视频在线观看 | 国产一区二区在线免费 | 欧洲精品久久久 | 免费久久精品 | 久久99国产精品免费网站 | 亚洲精品免费播放 | 久久国产成人精品国产成人亚洲 | 婷婷亚洲一区二区三区 | 黄色网络免费看 | 国产精品久久久久久久久久三级 | 91一区二区在线观看 | 最新一区二区三区 | 国产精品久久久久久久久久免 | 看免费黄色一级片 | 最新av网址在线观看 | 黄视频免费在线观看 | 国产精品视频中文字幕 | 男女羞羞的视频 | 黄色成人小视频 | chinesegv男男猛男无套 | 国产影视 | 精品呦女 | 国产精品亚洲一区二区三区久久 | 青草伊人网 | 国产精品一区二区羞羞答答 | 欧美成人精品一区 | 一区二区三区四区五区中文字幕 | 一级毛片免费在线 | 中文字幕在线播放视频 | 蜜桃一本色道久久综合亚洲精品冫 | 欧美1区2区在线观看 | 中文字幕在线观看www |