如何在 Java 中初始化后扩展数组

Java 中初始化后扩展数组涉及创建一个具有更大大小的新数组并将原始数组的元素复制到其中。Java 数组具有固定大小,因此要添加更多元素,必须创建一个新数组来容纳其他数据。

初始化后扩展数组

Java 中的 System.arraycopy() 方法将元素从给定的源数组传输到目标数组。复制从源数组中的指定索引开始,并继续到目标数组中的指定位置。从源中复制一系列元素,复制的元素数量与提供的长度相对应。

源数组中位于 srcPos 和 srcPos + length - 1 之间的元素将移动到目标数组中 destPos 和 destPos + length - 1 之间的位置。

语法

以下是 System.arraycopy() 方法的语法 −

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

示例 1

创建一个名为 extended 的新数组,其大小大于原始数组名称。元素"D"和"E"被添加到新数组的索引 3 和 4 处,并使用 System.arraycopy() 方法将原始数组中的所有元素复制到新数组中。以下示例显示了如何在初始化后通过创建新数组来扩展数组 -

public class Main {
   public static void main(String[] args) {
      String[] names = new String[] { "A", "B", "C" };
      String[] extended = new String[5];
      extended[3] = "D";
      extended[4] = "E";
      System.arraycopy(names, 0, extended, 0, names.length);
      
      for (String str : extended){
         System.out.println(str);
      }
   }
}

输出

A
B
C
D
E

示例 2

此示例遵循与第一个示例类似的过程。创建一个新的数组,extended,具有额外的大小以容纳新元素"Prasad"和"Mammahe"。然后使用 System.arraycopy() 将原始数组名称复制到这个新的扩展数组。结果显示原始元素和新添加的元素。以下是数组扩展的代码 -

public class Main {
   public void extendArraySize() {
      String[] names = new String[] {"Sai", "Ram", "Krishna"};
      String[] extended = new String[5];
      extended[3] = "Prasad";
      extended[4] = "Mammahe";
      System.arraycopy(names, 0, extended, 0, names.length);
      
      for (String str : extended) System.out.println(str);
   } 
   public static void main(String[] args) {
      new Main().extendArraySize();
   }
}

输出

Sai
Ram
Krishna
Prasad
Mammahe    .
java_arrays.html