/* 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
{
static boolean containsOnlyNegatives(int[] integers) {
// same as answer already given, but short-circuiting and bitwise
return integers != null
&& !Arrays.
stream(integers
).
anyMatch(i
-> Integer.
signum(-1 & i
) != -1); }
static boolean containsPositive(int[] integers) {
// no short-circuiting if the first element was tested positive
return integers != null
&& Arrays.
stream(integers
).
anyMatch(i
-> Integer.
signum(-1 & i
) == 1); }
{
final int[] mixed = {-1, -2, 3, 0};
final int[] negatives = {-1, -2};
final int[] positives = {3, 4};
"mixed", mixed
, "only negatives", negatives
, "only positives", positives
);
testCases.forEach((k, v) ->
System.
out.
println("Case: " + k
+ " | containsOnlyNegatives: " + containsOnlyNegatives(v)
+ " | containsPositive: " + containsPositive(v))
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zT25seU5lZ2F0aXZlcyhpbnRbXSBpbnRlZ2VycykgewogICAgICAvLyBzYW1lIGFzIGFuc3dlciBhbHJlYWR5IGdpdmVuLCBidXQgc2hvcnQtY2lyY3VpdGluZyBhbmQgYml0d2lzZQogICAgICByZXR1cm4gaW50ZWdlcnMgIT0gbnVsbAogICAgICAgICAgICAgJiYgIUFycmF5cy5zdHJlYW0oaW50ZWdlcnMpLmFueU1hdGNoKGkgLT4gSW50ZWdlci5zaWdudW0oLTEgJiBpKSAhPSAtMSk7CiAgICB9CiAgICAKICAgIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zUG9zaXRpdmUoaW50W10gaW50ZWdlcnMpIHsKICAgICAgLy8gbm8gc2hvcnQtY2lyY3VpdGluZyBpZiB0aGUgZmlyc3QgZWxlbWVudCB3YXMgdGVzdGVkIHBvc2l0aXZlIAogICAgICByZXR1cm4gaW50ZWdlcnMgIT0gbnVsbCAKICAgICAgICAgICAgICYmIEFycmF5cy5zdHJlYW0oaW50ZWdlcnMpLmFueU1hdGNoKGkgLT4gSW50ZWdlci5zaWdudW0oLTEgJiBpKSA9PSAxKTsKICAgIH0KCgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJZmluYWwgaW50W10gbWl4ZWQgPSB7LTEsIC0yLCAzLCAwfTsKCQlmaW5hbCBpbnRbXSBuZWdhdGl2ZXMgPSB7LTEsIC0yfTsKCQlmaW5hbCBpbnRbXSBwb3NpdGl2ZXMgPSB7MywgNH07CgkJdmFyIHRlc3RDYXNlcyA9IE1hcC5vZigKCQkJIm1peGVkIiwgbWl4ZWQKCQkJLCAib25seSBuZWdhdGl2ZXMiLCBuZWdhdGl2ZXMKCQkJLCAib25seSBwb3NpdGl2ZXMiLCBwb3NpdGl2ZXMKCQkJKTsKCiAgICAgICAgdGVzdENhc2VzLmZvckVhY2goKGssIHYpIC0+IAogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYXNlOiAiICsgawogICAgICAgICAgKyAiIHwgY29udGFpbnNPbmx5TmVnYXRpdmVzOiAiICsgY29udGFpbnNPbmx5TmVnYXRpdmVzKHYpCiAgICAgICAgICArICIgfCBjb250YWluc1Bvc2l0aXZlOiAiICsgY29udGFpbnNQb3NpdGl2ZSh2KSkKICAgICAgICAgICk7Cgl9Cn0=