如果和Java中搜索条件

时间:2012-12-30 04:08:54

标签: java if-statement

我有7个包含一些String值的LinkedHashMap。我想搜索有多少LinkedHashMap包含密钥以及有多少LinkedHashMaps不包含搜索到的值。下面是我的示例Java代码。在示例Java代码中,我只使用了五个LinkedHashMaps。它告诉哪个LinkedHashMap仅包含搜索词。

public void sampleFunction(
        LinkedHashMap<String, String> h1,
        LinkedHashMap<String, String> h2, 
        LinkedHashMap<String, String> h3,
        LinkedHashMap<String, String> h4,
        LinkedHashMap<String, String> h5) {

    String searchMe = "something";

    if(h1.containsValue(searchMe)){
        System.out.println("I am in h1");
    }
    if(h2.containsValue(searchMe)){
        System.out.println("I am in h2");
    }
    if(h3.containsValue(searchMe)){
        System.out.println("I am in h3");
    }
    if(h4.containsValue(searchMe)){
        System.out.println("I am in h4");
    }
    if(h5.containsValue(searchMe)){
        System.out.println("I am in h5");
    }

}

修改

例如: 假设我将7个LinkedHashMaps传递给一个函数。该函数应该能够告诉我哪些传递的LinkedHashMaps包含搜索的术语。该函数的输出可以是:

H1 h2和h3 LinkedHashMaps包含密钥,而h4,h5,h6,h7错过了搜索项。

基于每个输出组合,我会在我的程序中调用适当的函数。例如,如果h2和h3包含该值,那么我可以调用fBill或fPay。

1 个答案:

答案 0 :(得分:3)

使用varargs:

public void sampleFunction(LinkedHashMap<String, String>... hs) {
    String searchMe = "something";
    for(LinkedHashMap<String, String> h : hs) {
        if(h.containsValue(searchMe)) {
            //do whatever
        }
    }
}