我有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。
答案 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
}
}
}