如何在 Java 中調整陣列大小?


Java 中無法動態調整陣列大小。 

  • 一種方法是使用 java.util.ArrayList(或 java.util.Vector)代替原生陣列。
  • 另一種方法是重新分配一個不同大小的陣列並複製舊陣列的內容到新陣列。

示例

class ResizableArray {
   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]);
  }
      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;
      }
}

輸出

1
2
3
4
5

更新於: 2019 年 7 月 30 日

5 千多次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.