/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
private static final String SOME_CONSTANT
= "A";
private static boolean java7(List<String> variables,List<String> attrNames){
for (String variable
: variables
) { boolean validAttribute = false;
if (variable.equals(SOME_CONSTANT)) {
validAttribute = true;
} else {
for (String attrName
: attrNames
) {
if (variable.equals(attrName)) {
validAttribute = true;
break;
}
}
}
if (!validAttribute) {
return false;
}
}
return true;
}
private static boolean java8(List<String> variables,List<String> attrNames){
return variables.stream().allMatch((item) -> item.equals(SOME_CONSTANT) || attrNames.contains(item));
}
{
List
<String
> attrNames
= Arrays.
asList("a",
"b",
"c"); List
<String
> noMatch
= Arrays.
asList("x",
"b",
"c"); List
<String
> match
= Arrays.
asList("a",
"b",
"c"); List
<String
> constant
= Arrays.
asList("a",
"b",
"c");
System.
out.
println(java7
(noMatch,attrNames
)+" "+java8
(noMatch,attrNames
)); System.
out.
println(java7
(match,attrNames
)+" "+java8
(match,attrNames
)); System.
out.
println(java7
(constant,attrNames
)+" "+java8
(constant,attrNames
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTT01FX0NPTlNUQU5UID0gIkEiOwoJCglwcml2YXRlIHN0YXRpYyBib29sZWFuIGphdmE3KExpc3Q8U3RyaW5nPiB2YXJpYWJsZXMsTGlzdDxTdHJpbmc+IGF0dHJOYW1lcyl7CgkJZm9yIChTdHJpbmcgdmFyaWFibGUgOiB2YXJpYWJsZXMpIHsKCQkJYm9vbGVhbiB2YWxpZEF0dHJpYnV0ZSA9IGZhbHNlOwoJCQlpZiAodmFyaWFibGUuZXF1YWxzKFNPTUVfQ09OU1RBTlQpKSB7CgkJCQl2YWxpZEF0dHJpYnV0ZSA9IHRydWU7CgkJCX0gZWxzZSB7CgkJCQlmb3IgKFN0cmluZyBhdHRyTmFtZSA6IGF0dHJOYW1lcykgewoKCQkJCQlpZiAodmFyaWFibGUuZXF1YWxzKGF0dHJOYW1lKSkgewoJCQkJCQl2YWxpZEF0dHJpYnV0ZSA9IHRydWU7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQlpZiAoIXZhbGlkQXR0cmlidXRlKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgkKCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gamF2YTgoTGlzdDxTdHJpbmc+IHZhcmlhYmxlcyxMaXN0PFN0cmluZz4gYXR0ck5hbWVzKXsKCXJldHVybiB2YXJpYWJsZXMuc3RyZWFtKCkuYWxsTWF0Y2goKGl0ZW0pIC0+IGl0ZW0uZXF1YWxzKFNPTUVfQ09OU1RBTlQpIHx8IGF0dHJOYW1lcy5jb250YWlucyhpdGVtKSk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUxpc3Q8U3RyaW5nPiBhdHRyTmFtZXMgPSBBcnJheXMuYXNMaXN0KCJhIiwgImIiLCAiYyIpOwoJCUxpc3Q8U3RyaW5nPiBub01hdGNoID0gQXJyYXlzLmFzTGlzdCgieCIsICJiIiwgImMiKTsKCQlMaXN0PFN0cmluZz4gbWF0Y2ggPSBBcnJheXMuYXNMaXN0KCJhIiwgImIiLCAiYyIpOwoJCUxpc3Q8U3RyaW5nPiBjb25zdGFudCA9IEFycmF5cy5hc0xpc3QoImEiLCAiYiIsICJjIik7CgkJCgkJU3lzdGVtLm91dC5wcmludGxuKGphdmE3KG5vTWF0Y2gsYXR0ck5hbWVzKSsiICIramF2YTgobm9NYXRjaCxhdHRyTmFtZXMpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oamF2YTcobWF0Y2gsYXR0ck5hbWVzKSsiICIramF2YTgobWF0Y2gsYXR0ck5hbWVzKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKGphdmE3KGNvbnN0YW50LGF0dHJOYW1lcykrIiAiK2phdmE4KGNvbnN0YW50LGF0dHJOYW1lcykpOwoJCQoJfQp9