比较两个数组并检查重复和缺失值

时间:2013-10-28 19:36:24

标签: java arrays function

我有一个字符串数组x,其中包含:chair,table,couch

我有第二个数组y,其中包括:椅子,勺子,桌子,刀,沙发,毛巾

我想检查是否使用了x中的所有单词,以及x中的单词在y中没有使用两次,例如:椅子,勺子,桌子,刀子,沙发,毛巾,椅子,冰箱在这个例子中椅子使用了两次。

我的方法是使用y的大小的for循环,然后通过每个其他索引,因为x的值总是按顺序,并创建一个测试用例数组,但我不知道如何检查是否使用了x的所有项目并检查它们是否未被使用两次

for(int i = 0 ; i < y.length; i+=2){
    test[i] = x[i];
}

1 个答案:

答案 0 :(得分:0)

您可以使用地图存储结果。例如:

    Map<String, Integer> counters = new HashMap<>();

    for(int i = 0; i < y.length; i++) {  // Why do you use i+=2?
        String sY = x[i];

        if (counters.contains(sY)) {
            counters.get(sY)++;
        } else {
            counters.put(sY, 1);
        }
    }

    for(Don't know the type... counter, counters) {
        if ( counter.value() > 1)
            throw new IllegalStateException("You used " + counter.key() + " " + counter.value() + " times. Thats too much" ); 
    }

请注意,此代码永远不会编译,但我希望,您有了想法。