<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    在Java中,數組不能動態重設大小。一個可替代方法是使用java.util.ArrayList (或者java.util.Vector)代替使用原始數組(array)。另一種解決方案是用一個不同大小的數組重設數組,將舊數組內容拷貝到新的數組。下面做了個演示程序實現第二種方案,編寫了個通用函數rsizeArray (參數)來實現此功能:

    /**
    * 使用一個新大小重設數組,并拷貝舊數組的內容到新數組
    * @param oldArray 舊數組被重設
    * @param newSize 新數組大小
    * @return 返回帶同樣內容的新數組
    */
    private static Object resizeArray (Object oldArray, int newSize){
    int oldSize = java.lang.reflect.Array.getLength(oldArray);
    Class elementType = oldArray.getClass().getComponentType();
    Object newArray = java.lang.reflect.Array.newInstance(
    elementType,newSize);
    int preserveLength = Math.min(oldSize,newSize);
    if (preserveLength > 0)
    System.arraycopy (oldArray,0,newArray,0,preserveLength);
    return newArray;
    }
    // resizeArray()測試用例
    public static void main (String[] args) {
    int[] a = {1,2,3};
    a = (int[])resizeArray(a,5);
    a[3] = 4;
    a[4] = 5;
    for (int i=0; i<a.length; i++)
    System.out.println (a[i]); }

    那二維數組如何重設大小呢? 很簡單,就是處理數組的數組呀!

    要想重設二維數組,resizeArray方法必須處理外部數組和所有嵌套數組,如下例:

      int a[][] = new int[2][3];
    //...
    a = (int[][])resizeArray(a,20);
    // 新數組是[20][3]
    for (int i=0; i<a.length; i++) {
    if (a[i] == null)
    a[i] = new int[30];
    else a[i] = (int[])resizeArray(a[i],30);
    }
    // 新數組是[20][30]


    凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
    、轉載請注明來處和原文作者。非常感謝。

    posted on 2007-09-19 10:34 草兒 閱讀(2992) 評論(4)  編輯  收藏 所屬分類: java

    Feedback

    # re: Java中如何重設數組的大?。? 2007-09-19 10:51 千里冰封
    呵呵,有創意  回復  更多評論
      

    # re: Java中如何重設數組的大?。? 2007-09-19 11:29 Unmi
    多看看ArrayList的源代碼吧,顧名思意它是用數組來實現的List,看看它是如何實現數組拷貝的。  回復  更多評論
      

    # re: Java中如何重設數組的大??? 2007-09-19 11:48 dennis
    System.arraycopy  回復  更多評論
      

    # re: Java中如何重設數組的大小?[未登錄] 2007-09-20 13:09 ivan
    有新意~不過反射浪費資源吧~  回復  更多評論
      

    主站蜘蛛池模板: 亚洲黄色在线视频| 亚洲一区二区在线免费观看| 亚洲日韩中文字幕| 亚洲乱码中文字幕综合234| 性短视频在线观看免费不卡流畅| 一级毛片免费视频网站| 亚洲最大无码中文字幕| 久久亚洲伊人中字综合精品| 亚洲精品动漫人成3d在线| 欧洲精品免费一区二区三区| 91免费国产在线观看| 中文字幕在线免费视频| 色噜噜狠狠色综合免费视频| 亚洲色大成网站www尤物| 亚洲精品动漫在线| 国产成人亚洲精品青草天美| 亚洲无码视频在线| 国产免费啪嗒啪嗒视频看看| 午夜dj在线观看免费视频| 国产精品69白浆在线观看免费 | 久久久久久国产a免费观看黄色大片 | 亚洲香蕉在线观看| 亚洲国产人成网站在线电影动漫| 亚洲人成网站在线观看青青| 亚洲AⅤ无码一区二区三区在线| 午夜免费不卡毛片完整版| 德国女人一级毛片免费| 黄页免费的网站勿入免费直接进入| 一区二区三区在线免费看| 日本在线免费播放| 久久精品中文字幕免费| 无码av免费一区二区三区| 无码国产精品一区二区免费vr| 秋霞人成在线观看免费视频| 成人性生交大片免费看中文| 中文字幕免费在线看电影大全| 热99RE久久精品这里都是精品免费| 中文字幕在线免费观看视频| 久久99免费视频| 88av免费观看| 成年黄网站色大免费全看|