将一个数组中的元素添加到“空数组”

时间:2011-11-28 12:45:18

标签: java arrays

我是java中的数组新手,所以我的问题对你们来说似乎都很简单

我有两个数组:

int[] newarray = new int[] {1,2,3,4}  
int[] result = new int[4]  // array with space for 4 elements
i=0

我的问题是:如何将newarray中的元素添加到结果中?例如,我如何添加newarray [i]?除非你使用ArrayLists,否则似乎没有像python中那样的添加函数。是否可以将数组中的元素添加到arraylist中,或者它们不能一起工作?希望得到一些澄清:)

7 个答案:

答案 0 :(得分:6)

要将i中的result元素设置为i中的newarray元素,请执行以下操作:

result[i] = newarray[i];

此外,您可以使用arraycopy复制整个数组:

System.arraycopy(newarray, 0, result, 0, newarray.length);

另见:

答案 1 :(得分:1)

使用System.arrayCopy复制数组。例如:

System.arraycopy(newarray, 0, result, 0, newarray.length)

第一个参数是源数组,然后是源位置,然后是目标数组和目标位置,以及长度。

答案 2 :(得分:1)

        int[] newarray = new int[] {1,2,3,4}  
        int[] result = new int[newarray.length];
        for(int i=0;i<newarray.length;i++)
            result[i]=newarray[i];

答案 3 :(得分:0)

假设您要将newarray中的第三个值分配给result中的第三个索引。 那就像是:

result[2] = newarray[2]

答案 4 :(得分:0)

在循环中一次复制一个元素或使用System.arraycopy

理解Java中的数组就像C中的数组,因为它是固定长度(还有其他类,如ArrayList,用于可变长度)。因此,您不要“添加”新元素,只需将值(x[i] = something;)分配给现有元素(在创建数组时将其初始化为零)。

据我所知,在ArrayList上没有“添加此数组的所有元素”方法,所以要做到这一点,你必须遍历数组并一次添加一个元素。有方法可以走向另一个方向。

答案 5 :(得分:0)

System.arraycopy(newarray, 0, result, 0, newarray.length);

或者您可以手动执行

for(int i = 0; i < newarray.length; i++) {
    result[i] = newarray[i];
}

使用Arrays,您可以使用

Arrays.asList(Object[] a);

答案 6 :(得分:0)

这也应该有效:

Arrays.asList(result).addAll(Arrays.asList(newarray));
  

返回由指定数组支持的固定大小的列表。 (改为   返回的列表“直写”到数组。)

使用静态导入:

asList(result).addAll(asList(newarray));