java中的方法将数组作为参数,复制第一个元素然后加倍长度?

时间:2013-11-20 04:47:14

标签: java arrays copy

我基本上想要一个方法,它接受我声明的数组,然后将元素复制到一个新数组中,然后将剩余元素的大小加倍为0.我怎样才能实现这一点?我对数组加倍感到困惑,我意识到我可以将数组与前一个数组相等来复制元素。

 class Untitled 
{
    public static void main(String[] args) 
{

    int[] a = {6, 3, 5, 2};




}


public static int[] doubleSize(int[] j)
{
    int[] new = int [] j + int[] j
    return int[] j;
}
}

3 个答案:

答案 0 :(得分:1)

Java会自动将整数数组中的元素初始化为0,因此您不必手动执行此操作。

public static int[] doubleSize(int[] j) 
{
    int[] newArray = new int[j.length * 2]
    for (int i = 0; i < j.length; i++) {
        newArray[i] = j[i];
    }
    return newArray;
}

编辑:更具Java风格的解决方案

public static int[] doubleSize(int[] j)
{
    return Arrays.copyOf(j, 2 * j.length);
}

答案 1 :(得分:0)

这很简单。要创建一个长度是其两倍长度的新数组:

int[] newArray = new int[j.length * 2];

由于数组是int类型,因此每个元素都将初始化为0。

因此,一旦从旧数组中复制元素,就应该完成。

此外,您还需要将return语句更改为

return newArray;

答案 2 :(得分:0)

您好以这种方式实现所需的功能。

public class DoubleArray
{

    public static void main( String[] args )
    {
        int a[]={2,3,4,5};

        int b[]=new int[2*a.length];

        b =Arrays.copyOf(a, b.length);

        System.out.println("DoubleArray.main()"+b);
        for(int i=0;i<b.length;i++)
        {
            System.out.println(b[i]);
        }

    }

}