接受两个整数数组并返回合并的数组

时间:2017-02-28 05:35:16

标签: java arrays

我正在尝试解决此实验室问题 - >

编写一个接受两个整数数组并返回合并数组的方法。创建此方法,以便可以在main方法中调用它,而无需创建类的对象。

现在我的解决方案就是这段代码 - >

class Merge_array{
public static void main(String args[])
{
    int c[];
    int a[]={1,2,3,4,5,6};
    int b[]={7,8,9,10,11};
    c=merge(a,b);
    for(int i=0;i<c.length;i++)
        System.out.println(c[i]+" ");
}

static int[] merge(int a[],int b[])
{
    int[] d=new int[a.length+b.length];
    for(int i=0;i<d.length;i++)
    {
        if(i<a.length)
            d[i]=a[i];
        else
            d[i]=b[i-a.length];
    }
    return d;

    }}

我返回d []数组引用(返回d)作为我的输出,它是merge()方法中的局部变量。我有困惑,这是否正确(尽管代码正常)。因为我正在返回在main中超出范围的数组的引用,并且我想知道在执行merge调用之后int d []的内存被java垃圾收集器破坏了。

1 个答案:

答案 0 :(得分:-1)

假设您合并时不需要重复记录,那么您可以使用一个集合(例如HashSet)来执行此操作。

设置mergeSet = new HashSet();

mergeSet.addAll(firstArray);
mergeSet.addAll(secondArray);

然后你可以使用 mergeSet.toArray获取一个包含所有数组项但没有重复项的新数组。