0

我有 7 个包含一些字符串值的 LinkedHashMap。我想搜索有多少 LinkedHashMap 包含键,有多少 LinkedHashMap 不包含搜索到的值。下面是我的示例 Java 代码。在示例 Java 代码中,我只使用了五个 LinkedHashMap。它告诉哪个 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。

4

1 回答 1

3

使用可变参数:

public void sampleFunction(LinkedHashMap<String, String>... hs) {
    String searchMe = "something";
    for(LinkedHashMap<String, String> h : hs) {
        if(h.containsValue(searchMe)) {
            //do whatever
        }
    }
}
于 2012-12-30T04:14:11.900 回答