在java中比较2维数组与1维数组

时间:2014-04-21 14:56:30

标签: java arrays

第一个数组的元素是数组,因此第一个数组包含四个元素数组。

第二个数组是一维数组。

我的任务是测试第二个数组中是否存在元素数组的每个字符串。如果存在,则应打印该值。

String[][] arr1 = {
    {"a", "b", "c", "d"}, 
    {"a", "d", "f"}, 
    {"d", "a", "b"}, 
    {"a", "b", "c", "d"}
};
String[] arr2 = {"a","b", "d","f"};

输出应为:

a d f
d a b

如何为所需的输出处理这些数组?

1 个答案:

答案 0 :(得分:1)

public static void main(String[] args) {
    String[][] arr1 = {
        {"a", "b", "c", "d"}, 
        {"a", "d", "f"}, 
        {"d", "a", "b"}, 
        {"a", "b", "c", "d"}
    };
    String[] arr2 = {"a", "b", "d", "f"};

    for (String[] letters : arr1) {
        boolean containsAll = true;
        for (String letter : letters) {
            boolean match = false;
            for (String s : arr2) {
                if (letter.equals(s))
                    match = true;
            }
            if(!match){
                containsAll = false;
                break;
            }
        }
        if(containsAll){
            System.out.println(Arrays.toString(letters));
        }
    }

}

Out is:

[a, d, f]
[d, a, b]