我正在尝试解决此实验室问题 - >
编写一个接受两个整数数组并返回合并数组的方法。创建此方法,以便可以在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垃圾收集器破坏了。
答案 0 :(得分:-1)
假设您合并时不需要重复记录,那么您可以使用一个集合(例如HashSet)来执行此操作。
设置mergeSet = new HashSet();
mergeSet.addAll(firstArray);
mergeSet.addAll(secondArray);
然后你可以使用 mergeSet.toArray获取一个包含所有数组项但没有重复项的新数组。