gpt4 book ai didi

java - 如何找到两个整数数组之间的差异?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:55 26 4
gpt4 key购买 nike

我正在尝试编写一个返回两个数组之间差异的函数。输入数组未排序。我假设输入数组中的所有元素都是唯一的。例如:

输入:arr1 = [1,2,3,5,4] arr2 = [1,2,3]

预期输出:[4,5]

我正在尝试使用 arraylist 来实现它,但找不到我的代码的问题。在这里:

public class Difference{
ArrayList<Integer> diff(int m[],int n[])
{
int mlen = m.length;
int nlen = n.length;
ArrayList<Integer> arr1 = new ArrayList<Integer>(Arrays.asList(m));
ArrayList<Integer> arr2 = new ArrayList<Integer>(Arrays.asList(n));
if(mlen>nlen)
{
arr1.removeAll(arr2);
return arr1;
}
else
{
arr2.removeAll(arr1);
return arr2;
}

}
public static void main(String args[])
{
Difference obj = new Difference();
int a[] = {1,2,3,4,5};
int b[] = {1,2,3};
System.out.println(obj.diff(a,b));
}
}

最佳答案

您的代码的问题在于您正尝试为 ArrayList(int[] numbers) 使用不存在的构造函数您要么必须添加 m 中的每个数字和 nArrayList或者使用双括号初始化,例如

ArrayList < Integer > arr1 = new ArrayList < Integer > () {
{
for (int i: m) add(i);
}
}
ArrayList < Integer > arr2 = new ArrayList < Integer > () {
{
for (int i: n) add(i);
}
}

在一行中,如果没有格式化,它看起来像这样

new ArrayList<Integer>() {{for(int i:m) add(i);}};

另一种首选方法是在迭代时添加每个数字,例如

 ArrayList<Integer> arr1 = new ArrayList<Integer>();
for(int i: m) arr1.add(i);

关于java - 如何找到两个整数数组之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com