/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Employee {
public Employee(double salary) {
this.salary = salary;
}
private double salary;
public double getSalary() {
return salary;
}
return Integer.
toHexString(hashCode
()) + " " + String.
valueOf(salary
); }
}
class Main {
List
<Employee
> employees
= Arrays.
asList( new Employee(100),
new Employee(150),
new Employee(200),
new Employee(150),
new Employee(100)
);
double sum = 0;
NavigableMap
<Double, List
<Employee
>> map
= new TreeMap
<>(); for (Employee e : employees) {
sum += e.getSalary();
map.compute(e.getSalary(), (k, v) -> {
List<Employee> l = (v == null) ? new ArrayList<>() : v;
l.add(e);
return l;
});
}
double avg = sum / employees.size();
System.
out.
println("avg = " + avg
); System.
out.
println(">avg = " + map.
tailMap(avg,
false).
values()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBFbXBsb3llZSB7CglwdWJsaWMgRW1wbG95ZWUoZG91YmxlIHNhbGFyeSkgewoJCXRoaXMuc2FsYXJ5ID0gc2FsYXJ5OwoJfQoJCglwcml2YXRlIGRvdWJsZSBzYWxhcnk7CgkKCXB1YmxpYyBkb3VibGUgZ2V0U2FsYXJ5KCkgewoJCXJldHVybiBzYWxhcnk7Cgl9CgkKCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJcmV0dXJuIEludGVnZXIudG9IZXhTdHJpbmcoaGFzaENvZGUoKSkgKyAiICIgKyBTdHJpbmcudmFsdWVPZihzYWxhcnkpOwoJfQp9CgpjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKCQlMaXN0PEVtcGxveWVlPiBlbXBsb3llZXMgPSBBcnJheXMuYXNMaXN0KAoJCQluZXcgRW1wbG95ZWUoMTAwKSwKCQkJbmV3IEVtcGxveWVlKDE1MCksCgkJCW5ldyBFbXBsb3llZSgyMDApLAoJCQluZXcgRW1wbG95ZWUoMTUwKSwKCQkJbmV3IEVtcGxveWVlKDEwMCkKCQkpOwoJCWRvdWJsZSBzdW0gPSAwOwoJCU5hdmlnYWJsZU1hcDxEb3VibGUsIExpc3Q8RW1wbG95ZWU+PiBtYXAgPSBuZXcgVHJlZU1hcDw+KCk7CgkJZm9yIChFbXBsb3llZSBlIDogZW1wbG95ZWVzKSB7CgkJCXN1bSArPSBlLmdldFNhbGFyeSgpOwoJCQltYXAuY29tcHV0ZShlLmdldFNhbGFyeSgpLCAoaywgdikgLT4gewoJCQkJTGlzdDxFbXBsb3llZT4gbCA9ICh2ID09IG51bGwpID8gbmV3IEFycmF5TGlzdDw+KCkgOiB2OwoJCQkJbC5hZGQoZSk7CgkJCQlyZXR1cm4gbDsKCQkJfSk7CgkJfQoJCWRvdWJsZSBhdmcgPSBzdW0gLyBlbXBsb3llZXMuc2l6ZSgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiYXZnID0gIiArIGF2Zyk7CgkJU3lzdGVtLm91dC5wcmludGxuKCI+YXZnID0gIiArIG1hcC50YWlsTWFwKGF2ZywgZmFsc2UpLnZhbHVlcygpKTsKCX0KfQ==