import java.util.*;
import java.util.stream.*;
class Ideone {
public static void main
(String[] args
) { final List
<StudentCourseMapping
> studentCourseMappings
= List.
of( new StudentCourseMapping("Alu", "Physics", 12, "Quantum Theory"),
new StudentCourseMapping("Alu", "Physics", 12, "English"),
new StudentCourseMapping("Sam", "Commerce", 16, "English"),
new StudentCourseMapping("Sam", "Commerce", 16, "Accounts"),
new StudentCourseMapping("Joe", "Arts", 19, "English"),
new StudentCourseMapping("Joe", "Arts", 19, "Hindi"));
final List<StudentCourseMapping> deduped = studentCourseMappings.stream()
.distinct()
.collect(Collectors.toList());
.stream()
.
collect(Collectors.
joining(System.
lineSeparator()))); }
}
class StudentCourseMapping {
this.name = name;
this.dept = dept;
this.roll = roll;
this.course = course;
}
return name;
}
return dept;
}
return roll;
}
return course;
}
@Override
public boolean equals
(Object obj
) { StudentCourseMapping other = (StudentCourseMapping) obj;
if (roll == null) {
if (other.roll != null)
return false;
} else if (!roll.equals(other.roll))
return false;
return true;
}
@Override
public int hashCode() {
return Objects.hash(roll);
}
@Override
return "StudentCourseMapping{" +
"name='" + name + '\'' +
", dept='" + dept + '\'' +
", roll=" + roll +
", course='" + course + '\'' +
'}';
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwoKY2xhc3MgSWRlb25lIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICBmaW5hbCBMaXN0PFN0dWRlbnRDb3Vyc2VNYXBwaW5nPiBzdHVkZW50Q291cnNlTWFwcGluZ3MgPSBMaXN0Lm9mKAogICAgICAgIG5ldyBTdHVkZW50Q291cnNlTWFwcGluZygiQWx1IiwgIlBoeXNpY3MiLCAxMiwgIlF1YW50dW0gVGhlb3J5IiksCiAgICAgICAgbmV3IFN0dWRlbnRDb3Vyc2VNYXBwaW5nKCJBbHUiLCAiUGh5c2ljcyIsIDEyLCAiRW5nbGlzaCIpLAogICAgICAgIG5ldyBTdHVkZW50Q291cnNlTWFwcGluZygiU2FtIiwgIkNvbW1lcmNlIiwgMTYsICJFbmdsaXNoIiksCiAgICAgICAgbmV3IFN0dWRlbnRDb3Vyc2VNYXBwaW5nKCJTYW0iLCAiQ29tbWVyY2UiLCAxNiwgIkFjY291bnRzIiksCiAgICAgICAgbmV3IFN0dWRlbnRDb3Vyc2VNYXBwaW5nKCJKb2UiLCAiQXJ0cyIsIDE5LCAiRW5nbGlzaCIpLAogICAgICAgIG5ldyBTdHVkZW50Q291cnNlTWFwcGluZygiSm9lIiwgIkFydHMiLCAxOSwgIkhpbmRpIikpOwogICAgZmluYWwgTGlzdDxTdHVkZW50Q291cnNlTWFwcGluZz4gZGVkdXBlZCA9IHN0dWRlbnRDb3Vyc2VNYXBwaW5ncy5zdHJlYW0oKQogICAgICAgIC5kaXN0aW5jdCgpCiAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oZGVkdXBlZAogICAgICAgIC5zdHJlYW0oKQogICAgICAgIC5tYXAoT2JqZWN0Ojp0b1N0cmluZykKICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLmpvaW5pbmcoU3lzdGVtLmxpbmVTZXBhcmF0b3IoKSkpKTsKICB9Cn0KCmNsYXNzIFN0dWRlbnRDb3Vyc2VNYXBwaW5nIHsKICBwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOwogIHByaXZhdGUgZmluYWwgU3RyaW5nIGRlcHQ7CiAgcHJpdmF0ZSBmaW5hbCBJbnRlZ2VyIHJvbGw7CiAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgY291cnNlOwoKICBwdWJsaWMgU3R1ZGVudENvdXJzZU1hcHBpbmcoU3RyaW5nIG5hbWUsIFN0cmluZyBkZXB0LCBJbnRlZ2VyIHJvbGwsIFN0cmluZyBjb3Vyc2UpIHsKICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICB0aGlzLmRlcHQgPSBkZXB0OwogICAgdGhpcy5yb2xsID0gcm9sbDsKICAgIHRoaXMuY291cnNlID0gY291cnNlOwogIH0KCiAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgewogICAgcmV0dXJuIG5hbWU7CiAgfQoKICBwdWJsaWMgU3RyaW5nIGdldERlcHQoKSB7CiAgICByZXR1cm4gZGVwdDsKICB9CgogIHB1YmxpYyBJbnRlZ2VyIGdldFJvbGwoKSB7CiAgICByZXR1cm4gcm9sbDsKICB9CgogIHB1YmxpYyBTdHJpbmcgZ2V0Q291cnNlKCkgewogICAgcmV0dXJuIGNvdXJzZTsKICB9CgogIEBPdmVycmlkZQogIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CiAgICBTdHVkZW50Q291cnNlTWFwcGluZyBvdGhlciA9IChTdHVkZW50Q291cnNlTWFwcGluZykgb2JqOwogICAgaWYgKHJvbGwgPT0gbnVsbCkgewogICAgICBpZiAob3RoZXIucm9sbCAhPSBudWxsKQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0gZWxzZSBpZiAoIXJvbGwuZXF1YWxzKG90aGVyLnJvbGwpKQogICAgICByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIEBPdmVycmlkZQogIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CiAgICByZXR1cm4gT2JqZWN0cy5oYXNoKHJvbGwpOwogIH0KCiAgQE92ZXJyaWRlCiAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgIHJldHVybiAiU3R1ZGVudENvdXJzZU1hcHBpbmd7IiArCiAgICAgICAgIm5hbWU9JyIgKyBuYW1lICsgJ1wnJyArCiAgICAgICAgIiwgZGVwdD0nIiArIGRlcHQgKyAnXCcnICsKICAgICAgICAiLCByb2xsPSIgKyByb2xsICsKICAgICAgICAiLCBjb3Vyc2U9JyIgKyBjb3Vyc2UgKyAnXCcnICsKICAgICAgICAnfSc7CiAgfQp9