/* package whatever; // don't place package name! */
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
List
<Map
<String, String
>> customerDirectory
= List.
of( Map.
of("NAME",
"a",
"PHONE",
"123",
"ADDRESS",
"dd"),
Map.
of("NAME",
"c",
"PHONE",
"34534",
"ADDRESS",
"ddd"),
Map.
of("NAME",
"b",
"PHONE",
"3454",
"ADDRESS",
"tt")); Map
<String, String
> customerInfo
= new HashMap
<>(); customerInfo.put("NAME", "a");
customerInfo.put("PHONE", "123");
customerInfo.put("ADDRESS", null);
List
<String
> compareKeys
= Arrays.
asList("NAME",
"PHONE",
"ADDRESS");
boolean anyMatch =
customerDirectory.stream()
.anyMatch(m -> compareKeys.stream()
.allMatch(key -> m.get(key).equals(customerInfo.get(key))));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLk1hcDsKaW1wb3J0IGphdmEudXRpbC5mdW5jdGlvbi5GdW5jdGlvbjsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uSW50U3RyZWFtOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5TdHJlYW07CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJTGlzdDxNYXA8U3RyaW5nLCBTdHJpbmc+PiBjdXN0b21lckRpcmVjdG9yeSA9IExpc3Qub2YoCiAgICAgICAgICAgICAgICBNYXAub2YoIk5BTUUiLCAiYSIsICJQSE9ORSIsICIxMjMiLCAiQUREUkVTUyIsICJkZCIpLAogICAgICAgICAgICAgICAgTWFwLm9mKCJOQU1FIiwgImMiLCAiUEhPTkUiLCAiMzQ1MzQiLCAiQUREUkVTUyIsICJkZGQiKSwKICAgICAgICAgICAgICAgIE1hcC5vZigiTkFNRSIsICJiIiwgIlBIT05FIiwgIjM0NTQiLCAiQUREUkVTUyIsICJ0dCIpKTsKICAgICAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IGN1c3RvbWVySW5mbyA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBjdXN0b21lckluZm8ucHV0KCJOQU1FIiwgImEiKTsKICAgICAgICBjdXN0b21lckluZm8ucHV0KCJQSE9ORSIsICIxMjMiKTsKICAgICAgICBjdXN0b21lckluZm8ucHV0KCJBRERSRVNTIiwgbnVsbCk7CgogICAgICAgIExpc3Q8U3RyaW5nPiBjb21wYXJlS2V5cyA9IEFycmF5cy5hc0xpc3QoIk5BTUUiLCAiUEhPTkUiLCAiQUREUkVTUyIpOwoKICAgICAgICBib29sZWFuIGFueU1hdGNoID0KICAgICAgICAgICAgICAgIGN1c3RvbWVyRGlyZWN0b3J5LnN0cmVhbSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hbnlNYXRjaChtIC0+IGNvbXBhcmVLZXlzLnN0cmVhbSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFsbE1hdGNoKGtleSAtPiBtLmdldChrZXkpLmVxdWFscyhjdXN0b21lckluZm8uZ2V0KGtleSkpKSk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhbnlNYXRjaCk7Cgl9Cn0=