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

标签 java arrays multidimensional-array

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

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/

相关文章:

嵌套数组中的PHP foreach循环

java - 如何在 foreach 循环中为每个值添加一些其他值?

arrays - 搜索包含项目数组的项目等node.js

java - ResultSet 关闭后不允许执行 SQLException 操作

java - 如何复制 Java 集合列表

java - 使用 Java 将字符串数组写入文件 - 单独的行

php - 如何从多维数组中删除一些重复元素

Javascript遍历未知深度对象

java - 显示队列数组元素

java - 使用 Https 和 tomcat 进行 Spring 远程处理