import java.util.*;
class Scratch {
public static void main
(String[] args
) {
final Set<Employee> eSet = new TreeSet<>();
eSet.add(new Employee(1, "john", 20000));
eSet.add(new Employee(2, "jim", 10000));
eSet.add(new Employee(9, "mike", 50000));
eSet.add(new Employee(3, "jack", 30000));
eSet.add(new Employee(3, "david", 40000));
eSet.add(new Employee(9, "liam", 80000));
eSet.add(new Employee(9, "brad", 89000));
eSet.add(new Employee(3, "jason", 85000));
eSet.add(new Employee(2, "ted", 35000));
for(Employee e: eSet) {
}
}
}
class Employee implements Comparable<Employee> {
int empId;
double salary;
public Employee
(int empId,
String empName,
double salary
) { this.empId = empId;
this.empName = empName;
this.salary = salary;
}
@Override
public int hashCode() {
return empId;
}
@Override
public boolean equals
(Object o
) { if(this == o) return true;
if(o == null || this.getClass() != o.getClass()) return false;
Employee e = (Employee) o;
return (this.empId == e.empId);
}
@Override
return empId + " " + empName + " " + salary;
}
@Override
public int compareTo(Employee e) {
return Integer.
compare(empId, e.
empId); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgU2NyYXRjaCB7CiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgIGZpbmFsIFNldDxFbXBsb3llZT4gZVNldCA9IG5ldyBUcmVlU2V0PD4oKTsKCiAgICBlU2V0LmFkZChuZXcgRW1wbG95ZWUoMSwgImpvaG4iLCAyMDAwMCkpOwogICAgZVNldC5hZGQobmV3IEVtcGxveWVlKDIsICJqaW0iLCAxMDAwMCkpOwogICAgZVNldC5hZGQobmV3IEVtcGxveWVlKDksICJtaWtlIiwgNTAwMDApKTsKICAgIGVTZXQuYWRkKG5ldyBFbXBsb3llZSgzLCAiamFjayIsIDMwMDAwKSk7CiAgICBlU2V0LmFkZChuZXcgRW1wbG95ZWUoMywgImRhdmlkIiwgNDAwMDApKTsKICAgIGVTZXQuYWRkKG5ldyBFbXBsb3llZSg5LCAibGlhbSIsIDgwMDAwKSk7CiAgICBlU2V0LmFkZChuZXcgRW1wbG95ZWUoOSwgImJyYWQiLCA4OTAwMCkpOwogICAgZVNldC5hZGQobmV3IEVtcGxveWVlKDMsICJqYXNvbiIsIDg1MDAwKSk7CiAgICBlU2V0LmFkZChuZXcgRW1wbG95ZWUoMiwgInRlZCIsIDM1MDAwKSk7CgogICAgZm9yKEVtcGxveWVlIGU6IGVTZXQpIHsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOwogICAgfQogIH0KfQoKY2xhc3MgRW1wbG95ZWUgaW1wbGVtZW50cyBDb21wYXJhYmxlPEVtcGxveWVlPiB7CiAgaW50IGVtcElkOwogIFN0cmluZyBlbXBOYW1lOwogIGRvdWJsZSBzYWxhcnk7CgogIHB1YmxpYyBFbXBsb3llZShpbnQgZW1wSWQsIFN0cmluZyBlbXBOYW1lLCBkb3VibGUgc2FsYXJ5KSB7CiAgICB0aGlzLmVtcElkID0gZW1wSWQ7CiAgICB0aGlzLmVtcE5hbWUgPSBlbXBOYW1lOwogICAgdGhpcy5zYWxhcnkgPSBzYWxhcnk7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgewogICAgcmV0dXJuIGVtcElkOwogIH0KCiAgQE92ZXJyaWRlCiAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CiAgICBpZih0aGlzID09IG8pIHJldHVybiB0cnVlOwogICAgaWYobyA9PSBudWxsIHx8IHRoaXMuZ2V0Q2xhc3MoKSAhPSBvLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKCiAgICBFbXBsb3llZSBlID0gKEVtcGxveWVlKSBvOwogICAgcmV0dXJuICh0aGlzLmVtcElkID09IGUuZW1wSWQpOwogIH0KCiAgQE92ZXJyaWRlCiAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgIHJldHVybiBlbXBJZCArICIgIiArIGVtcE5hbWUgKyAiICIgKyBzYWxhcnk7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgaW50IGNvbXBhcmVUbyhFbXBsb3llZSBlKSB7CiAgICByZXR1cm4gSW50ZWdlci5jb21wYXJlKGVtcElkLCBlLmVtcElkKTsKICB9Cn0=