gpt4 book ai didi

Java,通过不同方法传递和修改数组,数组交集

转载 作者:行者123 更新时间:2023-11-30 04:17:54 24 4
gpt4 key购买 nike

我试图传递两个数组,它们由用户在 readData() 中记录;方法,然后将两个数组传递给一个方法 (intersectionDuplicates();),该方法检查两个数组中的重复项。然后它会将没有重复项的值添加到 2 个新数组中。然后将这些数组传递给一个方法,该方法查找两个数组之间的交集/公共(public)值,并将这些值推送到另一个新数组。然后在 printArray() 中打印这个新数组;方法。 readData 和 printArray 方法都按预期工作。我的困惑在于通过每个方法传递一个/多个数组。这是我到目前为止所拥有的。

static int SizeofX = 0;
static int SizeofY = 0;
static int [] x = new int[100];
static int [] y = new int[100];
public static void main (String [] args) {
int SizeofX = readData(x);
int SizeofY = readData(y);

intersectionDuplicates(x, SizeofX, y, SizeofY);


public static int[] intersectionDuplicates (int [] a, int numElementsInA, int [] b, int numElementsInB) {
int temp2 = 0;
int temp = 0;
int [] z = new int [100];
int [] y = new int [100];
for (int i=0; i<numElementsInA; i++){
for (int j=i+1; j<numElementsInA; j++){
if (a[j]!=a[i]) {
z[temp] = a[i];
temp++;
}
}
}
for (int i=0; i<numElementsInB; i++){
for (int j=i+1; j<numElementsInB; j++){
if (b[j]!=b[i]) {
y[temp2] = a[i];
temp2++;
}
}
}
}//end intersectionDuplicates


public static int[] intersection (int [] x, int numElementsInX, int [] y, int numElementsInY) {
int temp = 0;
int [] z = new int [100];
for (int j=0; j<numElementsInX; j++){
for (int i=0; i<numElementsInY; i++){
if (x[j]==y[i]) {
z[temp] = x[j];
temp++;
}
}
}
printArray(z, temp);
}//end intersection

如何将 IntersectionDuplicates 中的新数组传递到下一个方法交集?

也很抱歉这个问题太长了!感谢您的帮助!

最佳答案

在Java中数组长度可以通过使用 array.length 找到。所以这个方法的长度参数

public static int[] intersection (int [] x, int numElementsInX, int [] y, int numElementsInY)

都是多余的。

我猜你的intersection方法错误。当x[i]y[j] 不同您需要将其放入您的 z 中吗?数组。

还有intersectionDuplicates正在计算 x 中的共同元素和y数组两次。您需要摆脱其中一个 for 循环。

在您的主方法中,您拥有 x句柄y 。您可以将相同的内容传递给任何方法来获取 z大批。您也可以给这个z数组到你的printArray方法。

关于Java,通过不同方法传递和修改数组,数组交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889281/

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