如何检查另一个列表中是否包含2个列表的元素?

时间:2014-08-05 08:23:55

标签: java list

我想验证List<String>中包含的每个元素是否包含在第二个列表的任何元素中。

示例:

[hotel, appartment]
[hotel, appart]

Analye:

hotel      <> hotel  -> OK  (100% match)
appartment <> hotel  -> NOK 
appartment <> appart -> OK  ("appartment" is not contained in "appart", but the other way around)

<>读取:两者中的任何一个都包含在另一个字符串中。

如何做到最好,特别是从表现的角度来看? 是否已经有处理这些案例的apache commons或guava函数?

1 个答案:

答案 0 :(得分:0)

是你在寻找什么? 我没有运行这段代码,只是在记事本上写了......

for(int a=0;a<listA.size();a++){
    for(int b=0;b<listB.size();b++){
        if(listA.get(a).equals(listB.get(b))){
            System.out.println(listA.get(a) + "<>" + listB.get(b) + " -> OK  (100% match)");
        }else{
            //if not match, check if contained
            if(listA.get(a).indexOf(listB.get(b))!=-1 || listB.get(b).indexOf(listA.get(a))!=-1){
                System.out.println(listA.get(a) + "<>" + listB.get(b) + " -> OK  ("appartment" is not contained in "appart", but the other way around)");
            }else{
                System.out.println(listA.get(a) + "<>" + listB.get(b) + " -> NOK ");
            }
        }
    }//for list B
}//for list A