/* package whatever; // don't place package name! */
import java.util.*;
import java.util.stream.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
double sFF = 0;
double cAT = 0;
for (int i = 0; i <= 100; ++i) {
List
<Integer
> list
= new Random(0).
ints().
limit(5).
boxed().
collect(Collectors.
toList()); long start
= System.
nanoTime(); list.stream().collect(Collectors.collectingAndThen(
(Optional<Integer> n) -> n.orElse(0)));
cAT = (end - start) / 1e6;
list.stream().sorted().findFirst().get();
sFF = (end - start) / 1e6;
if (i == 0 || i == 100) {
System.
out.
println("Iteration " + i
); System.
out.
println("collectAndThen " + cAT
); System.
out.
println("sortFindFirst " + sFF
); }
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlkb3VibGUgc0ZGID0gMDsKCQlkb3VibGUgY0FUID0gMDsKCQkKCQlmb3IgKGludCBpID0gMDsgaSA8PSAxMDA7ICsraSkgewoJCUxpc3Q8SW50ZWdlcj4gbGlzdCA9IG5ldyBSYW5kb20oMCkuaW50cygpLmxpbWl0KDUpLmJveGVkKCkuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKTsKCQlsb25nIHN0YXJ0ID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJbGlzdC5zdHJlYW0oKS5jb2xsZWN0KENvbGxlY3RvcnMuY29sbGVjdGluZ0FuZFRoZW4oCgkJCUNvbGxlY3RvcnMubWF4QnkoQ29tcGFyYXRvci5uYXR1cmFsT3JkZXIoKSksCgkJCShPcHRpb25hbDxJbnRlZ2VyPiBuKSAtPiBuLm9yRWxzZSgwKSkpOwoJCWxvbmcgZW5kID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJY0FUID0gKGVuZCAtIHN0YXJ0KSAvIDFlNjsKCQkKCQlzdGFydCA9IFN5c3RlbS5uYW5vVGltZSgpOwoJCWxpc3Quc3RyZWFtKCkuc29ydGVkKCkuZmluZEZpcnN0KCkuZ2V0KCk7CgkJZW5kID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJc0ZGID0gKGVuZCAtIHN0YXJ0KSAvIDFlNjsKCQkKCQlpZiAoaSA9PSAwIHx8IGkgPT0gMTAwKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiSXRlcmF0aW9uICIgKyBpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oImNvbGxlY3RBbmRUaGVuICIgKyBjQVQpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigic29ydEZpbmRGaXJzdCAiICsgc0ZGKTsKCQl9CgkJfQoJfQp9