gpt4 book ai didi

java - 比较单个二维数组中的两行

转载 作者:行者123 更新时间:2023-11-29 07:04:27 26 4
gpt4 key购买 nike

我正在尝试比较二维数组中顺序不同的两行,并存储两行中相同的元素。这是我制作的示例:

String[] row1 = new String[10];
String[] row2 = new String[10];
String[][] fruit = {{"apple", "banana", "kiwi"},{"kiwi", "oranges", "grapes"}};

for (int i = 0; i < fruit.length; i++ ) {
for (int j = 0; j < fruit[i].length; j++){
if(fruit[0][j].equals(fruit[1][j])) {
row1[j] = fruit[0][j];
row2[j] = fruit[1][j];

System.out.println("Match found");
}else{
System.out.println("Not found");
}
}
}
System.out.println("row1");
System.out.println(Arrays.deepToString(row1));
System.out.println("row2");
System.out.println(Arrays.deepToString(row2));

我希望 row1[] 和 row2[] 存储相同的元素(在本例中为 kiwi)。然而,问题是 .equals 函数只检测匹配模式。上面的示例仅打印出 row1 和 row2 的空值。

它应该真的打印出来:

row1
[kiwi]
row2
[kiwi]

注意:我不想声明... String check = "kiwi"; 因为用户可以在二维数组中输入任何内容。

有什么建议吗?我觉得我越来越近了。我看到有人使用 .equals 的类似示例并且有效,但它仅适用于单个数组。

最佳答案

您的 for 循环的限制以及您为比较访问的数组元素都被搞乱了。我猜你想要这样的东西......

import java.util.Arrays;

public class RowCompare
{
public static void main(String[] args)
{
String[] row1 = new String[10];
String[] row2 = new String[10];
String[][] fruit = {{"apple", "banana", "kiwi"},{"kiwi", "oranges", "grapes"}};

for (int i = 0; i < fruit[0].length; i++ ) {
for (int j = 0; j < fruit[1].length; j++){
if(fruit[0][i].equals(fruit[1][j])) {
row1[i] = fruit[0][i];
row2[j] = fruit[1][j];

System.out.println("Match found");
}else{
System.out.println("Not found");
}
}
}
System.out.println("row1");
System.out.println(Arrays.deepToString(row1));
System.out.println("row2");
System.out.println(Arrays.deepToString(row2));
}
}

但是您可能应该描述您想要对结果做什么。这些固定大小的结果数组 (String[10]) 看起来很可疑,并且当前草拟的代码不能轻易地概括为超过 2 行。使用 SetList 可能有更优雅的解决方案....

关于java - 比较单个二维数组中的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21434258/

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