posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          arraycopy-------From JDK6.0

          public static void arraycopy(Object src,
          int srcPos,
          Object dest,
          int destPos,
          int length)
          從指定源數(shù)組中復(fù)制一個數(shù)組,復(fù)制從指定的位置開始,到目標(biāo)數(shù)組的指定位置結(jié)束。從 src 引用的源數(shù)組到 dest 引用的目標(biāo)數(shù)組,數(shù)組組件的一個子序列被復(fù)制下來。被復(fù)制的組件的編號等于 length 參數(shù)。源數(shù)組中位置在 srcPossrcPos+length-1 之間的組件被分別復(fù)制到目標(biāo)數(shù)組中的 destPosdestPos+length-1 位置。

          如果參數(shù) srcdest 引用相同的數(shù)組對象,則復(fù)制的執(zhí)行過程就好像首先將 srcPossrcPos+length-1 位置的組件復(fù)制到一個帶有 length 組件的臨時數(shù)組,然后再將此臨時數(shù)組的內(nèi)容復(fù)制到目標(biāo)數(shù)組的 destPosdestPos+length-1 位置一樣。

          If 如果 destnull,則拋出 NullPointerException 異常。

          如果 srcnull, 則拋出 NullPointerException 異常,并且不會修改目標(biāo)數(shù)組。

          否則,只要下列任何情況為真,則拋出 ArrayStoreException 異常并且不會修改目標(biāo)數(shù)組:

          • src 參數(shù)指的是非數(shù)組對象。
          • dest 參數(shù)指的是非數(shù)組對象。
          • src 參數(shù)和 dest 參數(shù)指的是那些其組件類型為不同基本類型的數(shù)組。
          • src 參數(shù)指的是具有基本組件類型的數(shù)組且 dest 參數(shù)指的是具有引用組件類型的數(shù)組。
          • src 參數(shù)指的是具有引用組件類型的數(shù)組且 dest 參數(shù)指的是具有基本組件類型的數(shù)組。

          否則,只要下列任何情況為真,則拋出 IndexOutOfBoundsException 異常,并且不會修改目標(biāo)數(shù)組:

          • srcPos 參數(shù)為負(fù)。
          • destPos 參數(shù)為負(fù)。
          • length 參數(shù)為負(fù)。
          • srcPos+length 大于 src.length,即源數(shù)組的長度。
          • destPos+length 大于 dest.length,即目標(biāo)數(shù)組的長度。

          否則,如果源數(shù)組中 srcPossrcPos+length-1 位置上的實(shí)際組件通過分配轉(zhuǎn)換并不能轉(zhuǎn)換成目標(biāo)數(shù)組的組件類型,則拋出 ArrayStoreException 異常。在這種情況下,將 k 設(shè)置為比長度小的最小非負(fù)整數(shù),這樣就無法將 src[srcPos+k] 轉(zhuǎn)換為目標(biāo)數(shù)組的組件類型;當(dāng)拋出異常時,從 srcPossrcPos+k-1 位置上的源數(shù)組組件已經(jīng)被復(fù)制到目標(biāo)數(shù)組中的 destPosdestPos+k-1 位置,而目標(biāo)數(shù)組中的其他位置不會被修改。(因?yàn)橐呀?jīng)詳細(xì)說明過的那些限制,只能將此段落有效地應(yīng)用于兩個數(shù)組都有引用類型的組件類型的情況。)

           

          參數(shù):
          src - 源數(shù)組。
          srcPos - 源數(shù)組中的起始位置。
          dest - 目標(biāo)數(shù)組。
          destPos - 目標(biāo)數(shù)據(jù)中的起始位置。
          length - 要復(fù)制的數(shù)組元素的數(shù)量。
          拋出:
          IndexOutOfBoundsException - 如果復(fù)制會導(dǎo)致對數(shù)組范圍以外的數(shù)據(jù)的訪問。
          ArrayStoreException - 如果因?yàn)轭愋筒黄ヅ涠沟脽o法將 src 數(shù)組中的元素存儲到 dest 數(shù)組中。
          NullPointerException - 如果 srcdestnull

          package com.Gavin.tools;

          public class CopyArray {

              
          public static void main(String[] args) {
                  
          int elements[] = 123456 };
                  
          int hold[] = 10987654321 };
                  
                  
          int result[] = new int[16];
                  
                  
          //數(shù)組累加
                  System.arraycopy(elements, 0, result, 0, elements.length);
                  System.arraycopy(hold, 
          0, result, elements.length, hold.length);        
                  
          for (int i = 0; i < result.length; i++)
                      System.out.println(
          "result[" + i + "]=" + result[i]);
                  
                  
          //自復(fù)制
                  System.arraycopy(elements, 0, elements, 11);
                  
          for (int i = 0; i < elements.length; i++)
                      System.out.println(
          "elements[" + i + "]=" + elements[i]);

                  
          //覆蓋累加
                  System.arraycopy(elements, 0, hold, 0, elements.length);        
                  
          for (int i = 0; i < hold.length; i++)
                      System.out.println(
          "hold[" + i + "]=" + hold[i]);
              }

          }

          主站蜘蛛池模板: 新乡县| 开化县| 克拉玛依市| 新和县| 屏南县| 德令哈市| 德保县| 图木舒克市| 金川县| 得荣县| 临高县| 霍山县| 苍溪县| 和林格尔县| 巴林左旗| 栾城县| 凤凰县| 英吉沙县| 荥阳市| 福建省| 灌阳县| 叙永县| 宣恩县| 阳江市| 梁山县| 云阳县| 宣汉县| 清远市| 巴彦淖尔市| 望奎县| 台南市| 巫溪县| 南汇区| 静海县| 凤凰县| 靖远县| 遂溪县| 闸北区| 阿瓦提县| 安陆市| 营山县|