0

いくつかの文字列値を含む7つのLinkedHashMapがあります。キーが含まれているLinkedHashMapの数と、検索された値が含まれていないLinkedHashMapの数を検索したいと思います。以下は私のサンプルJavaコードです。サンプルJavaコードでは、5つの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を関数に渡すとします。関数は、渡されたLinkedHashMapのどれに検索された用語が含まれているかを教えてくれるはずです。関数の出力は次のようになります。

H1h2およびh3LinkedHashMapsにはキーが含まれており、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 に答える