使用旧数组中的内容创建新数组,同时保持旧数组静态

Obj*_*ing 12 java arrays

说我有一个整数数组,

int[] array = new int[7];
for(int i = 0; i < 7; i++)
{
array[i] = i;
}
Run Code Online (Sandbox Code Playgroud)

现在我只想获得前四个数字array,然后把它放到另一个数组中.

所以我真的想要......

newArray = array[0-3].
Run Code Online (Sandbox Code Playgroud)

我知道语法是错误的,但我只是给出了我正在尝试做的一般概念,是否有可能?或者我是否必须创建一个循环并手动将其添加到newArray

jks*_*der 32

方法1

int[] newArr = new int[4];
System.arraycopy(array, 0, newArr, 0, 4);
Run Code Online (Sandbox Code Playgroud)

该方法有五个参数:

  1. src:源数组.
  2. srcPosition:源文件中您希望开始复制的位置.
  3. des:目标数组.
  4. desPosition:目标数组中应开始复制的位置.
  5. length:要复制的元素数.

如果src或des中的任何一个为null,则此方法抛出NullPointerException.在以下情况下,它还会抛出ArrayStoreException:

  • 如果src不是数组.
  • 如果des不是数组.
  • 如果src和des是不同数据类型的数组.

方法2

利用

Arrays.copyOf(array,4) 复制前4个元素,截断其余元素.

Arrays.copyOfRange(array,1,5) 如果需要数组的中间,则复制元素1-4.


小智 10

int[] newArray = Arrays.copyOf(array,4);
Run Code Online (Sandbox Code Playgroud)