如何检查数组中元素的顺序

时间:2014-05-11 14:44:29

标签: java arrays

如何检查数组中元素的顺序?

就像我有两个数组一样,程序必须检查第一个中的所有元素是否与第二个元素的顺序相同,但如果跳过中间的某些元素则没问题

像,

String[] expected = { "a", "b", "c", "d", "e", "f", "g" };
String[] actual = { "a", "b", "d", "e" };

上面的一个很好。

但是下面这个必须失败:

String[] actual = { "a", "b", "c", "e", "d" };

我试过以下看起来很好但是有一种方式:

boolean matching = false;
    int e = 0;
    int a = 0;

    // 0 1 2 3 4 5 6
    String[] expected = { "a", "b", "c", "d", "e", "f", "g" };
    String[] actual = { "a", "b", "d" ,"g","c"};

    while (a < 5) {
        if (actual[a].equals(expected[e])) {
            matching = true;
            if(e<6){
            a++;
            e++;
            }
            else{
                matching = false;
                break;
            }
        } else {
            if (e < 6)
                e++;
            else
                break;
            matching = false;
        }
    }

    if (matching)
        System.out.println("seems alright");
    else
        System.out.println("No");

1 个答案:

答案 0 :(得分:0)

一旦可能的解决方案。

    int j = 0;
    for (int i = 0; i < expected.length; i++) {
        if (j < actual.length && actual[j].equals(expected[i])) {
            j++;
        }
    }
    if (j < actual.length) {
        //Does not match
    }