import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
class Student {
private LocalDate birthDate;
private List<Double> grades = new ArrayList<>();
public Student
(String name, LocalDate birthDate,
Double...
grades) { this.name = name;
this.birthDate = birthDate;
}
public List<Double> getGrades() {
return grades;
}
public void addGrade(double grade) {
grades.add(grade);
}
public LocalDate getBirthDate() {
return birthDate;
}
return id;
}
this.id = id;
}
@Override
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", birthDate=" + birthDate +
", grades=" + grades +
'}';
}
}
class StudentService {
private Map
<Integer, Student
> map
= new HashMap
<>();
public void saveOrUpdate(Student student) {
if (student.getId() == null)
student.setId(map.size());
else if (student.getId() >= map.size())
map.put(student.getId(), student);
}
public Student findById(int studentId) {
return map.get(studentId);
}
public List<Student> findAllSortedByAge() {
return map.values().stream()
.sorted((s1, s2) -> s2.getBirthDate().compareTo(s1.getBirthDate()))
.collect(Collectors.toList());
}
public Double countAvgOfGrades
(Student student
) { return student.getGrades().stream()
.mapToDouble(m -> m)
.average()
.orElse(0);
}
public List<Student> findAllWithAvgOfGradesLessThen(double avg) {
return map.values().stream()
.filter(s -> countAvgOfGrades(s) < avg)
.collect(Collectors.toList());
}
}
public class Main {
public static void main
(String[] args
) { StudentService studentService = new StudentService();
studentService.saveOrUpdate(new Student("aaaaa",
LocalDate.parse("1993-01-01"), 4.5, 5.0));
studentService.saveOrUpdate(new Student("bbbbb",
LocalDate.parse("1992-01-01"), 5.5, 5.0, 3.0));
studentService.saveOrUpdate(new Student("ccccc",
LocalDate.parse("1994-01-01"), 3.5));
Student founded = studentService.findById(0);
System.
out.
println(studentService.
countAvgOfGrades(founded
));
System.
out.
println(studentService.
findAllSortedByAge()); System.
out.
println(studentService.
findAllWithAvgOfGradesLessThen(4.0)); }
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKCmNsYXNzIFN0dWRlbnQgewogICAgcHJpdmF0ZSBJbnRlZ2VyIGlkOwogICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKICAgIHByaXZhdGUgTG9jYWxEYXRlIGJpcnRoRGF0ZTsKICAgIHByaXZhdGUgTGlzdDxEb3VibGU+IGdyYWRlcyA9IG5ldyBBcnJheUxpc3Q8PigpOwoKICAgIHB1YmxpYyBTdHVkZW50KFN0cmluZyBuYW1lLCBMb2NhbERhdGUgYmlydGhEYXRlLCBEb3VibGUuLi4gZ3JhZGVzKSB7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLmJpcnRoRGF0ZSA9IGJpcnRoRGF0ZTsKICAgICAgICBDb2xsZWN0aW9ucy5hZGRBbGwodGhpcy5ncmFkZXMsIGdyYWRlcyk7CiAgICB9CgogICAgcHVibGljIExpc3Q8RG91YmxlPiBnZXRHcmFkZXMoKSB7CiAgICAgICAgcmV0dXJuIGdyYWRlczsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBhZGRHcmFkZShkb3VibGUgZ3JhZGUpIHsKICAgICAgICBncmFkZXMuYWRkKGdyYWRlKTsKICAgIH0KCiAgICBwdWJsaWMgTG9jYWxEYXRlIGdldEJpcnRoRGF0ZSgpIHsKICAgICAgICByZXR1cm4gYmlydGhEYXRlOwogICAgfQoKICAgIHB1YmxpYyBJbnRlZ2VyIGdldElkKCkgewogICAgICAgIHJldHVybiBpZDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJZChJbnRlZ2VyIGlkKSB7CiAgICAgICAgdGhpcy5pZCA9IGlkOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gIlN0dWRlbnR7IiArCiAgICAgICAgICAgICAgICAiaWQ9IiArIGlkICsKICAgICAgICAgICAgICAgICIsIG5hbWU9JyIgKyBuYW1lICsgJ1wnJyArCiAgICAgICAgICAgICAgICAiLCBiaXJ0aERhdGU9IiArIGJpcnRoRGF0ZSArCiAgICAgICAgICAgICAgICAiLCBncmFkZXM9IiArIGdyYWRlcyArCiAgICAgICAgICAgICAgICAnfSc7CiAgICB9Cn0KCmNsYXNzIFN0dWRlbnRTZXJ2aWNlIHsKICAgIHByaXZhdGUgTWFwPEludGVnZXIsIFN0dWRlbnQ+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKCiAgICBwdWJsaWMgdm9pZCBzYXZlT3JVcGRhdGUoU3R1ZGVudCBzdHVkZW50KSB7CiAgICAgICAgaWYgKHN0dWRlbnQuZ2V0SWQoKSA9PSBudWxsKQogICAgICAgICAgICBzdHVkZW50LnNldElkKG1hcC5zaXplKCkpOwogICAgICAgIGVsc2UgaWYgKHN0dWRlbnQuZ2V0SWQoKSA+PSBtYXAuc2l6ZSgpKQogICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHVkZW50IGlkIHNob3VsZCBiZSA8IiArIG1hcC5zaXplKCkpOwogICAgICAgIG1hcC5wdXQoc3R1ZGVudC5nZXRJZCgpLCBzdHVkZW50KTsKICAgIH0KCiAgICBwdWJsaWMgU3R1ZGVudCBmaW5kQnlJZChpbnQgc3R1ZGVudElkKSB7CiAgICAgICAgcmV0dXJuIG1hcC5nZXQoc3R1ZGVudElkKTsKICAgIH0KCiAgICBwdWJsaWMgTGlzdDxTdHVkZW50PiBmaW5kQWxsU29ydGVkQnlBZ2UoKSB7CiAgICAgICAgcmV0dXJuIG1hcC52YWx1ZXMoKS5zdHJlYW0oKQogICAgICAgICAgICAgICAgLnNvcnRlZCgoczEsIHMyKSAtPiBzMi5nZXRCaXJ0aERhdGUoKS5jb21wYXJlVG8oczEuZ2V0QmlydGhEYXRlKCkpKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICB9CgogICAgcHVibGljIERvdWJsZSBjb3VudEF2Z09mR3JhZGVzKFN0dWRlbnQgc3R1ZGVudCkgewogICAgICAgIHJldHVybiBzdHVkZW50LmdldEdyYWRlcygpLnN0cmVhbSgpCiAgICAgICAgICAgICAgICAubWFwVG9Eb3VibGUobSAtPiBtKQogICAgICAgICAgICAgICAgLmF2ZXJhZ2UoKQogICAgICAgICAgICAgICAgLm9yRWxzZSgwKTsKICAgIH0KCiAgICBwdWJsaWMgTGlzdDxTdHVkZW50PiBmaW5kQWxsV2l0aEF2Z09mR3JhZGVzTGVzc1RoZW4oZG91YmxlIGF2ZykgewogICAgICAgIHJldHVybiBtYXAudmFsdWVzKCkuc3RyZWFtKCkKICAgICAgICAgICAgICAgIC5maWx0ZXIocyAtPiBjb3VudEF2Z09mR3JhZGVzKHMpIDwgYXZnKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTdHVkZW50U2VydmljZSBzdHVkZW50U2VydmljZSA9IG5ldyBTdHVkZW50U2VydmljZSgpOwoKICAgICAgICBzdHVkZW50U2VydmljZS5zYXZlT3JVcGRhdGUobmV3IFN0dWRlbnQoImFhYWFhIiwKICAgICAgICAgICAgICAgIExvY2FsRGF0ZS5wYXJzZSgiMTk5My0wMS0wMSIpLCA0LjUsIDUuMCkpOwogICAgICAgIHN0dWRlbnRTZXJ2aWNlLnNhdmVPclVwZGF0ZShuZXcgU3R1ZGVudCgiYmJiYmIiLAogICAgICAgICAgICAgICAgTG9jYWxEYXRlLnBhcnNlKCIxOTkyLTAxLTAxIiksIDUuNSwgNS4wLCAzLjApKTsKICAgICAgICBzdHVkZW50U2VydmljZS5zYXZlT3JVcGRhdGUobmV3IFN0dWRlbnQoImNjY2NjIiwKICAgICAgICAgICAgICAgIExvY2FsRGF0ZS5wYXJzZSgiMTk5NC0wMS0wMSIpLCAzLjUpKTsKCiAgICAgICAgU3R1ZGVudCBmb3VuZGVkID0gc3R1ZGVudFNlcnZpY2UuZmluZEJ5SWQoMCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZvdW5kZWQpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdHVkZW50U2VydmljZS5jb3VudEF2Z09mR3JhZGVzKGZvdW5kZWQpKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0dWRlbnRTZXJ2aWNlLmZpbmRBbGxTb3J0ZWRCeUFnZSgpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3R1ZGVudFNlcnZpY2UuZmluZEFsbFdpdGhBdmdPZkdyYWRlc0xlc3NUaGVuKDQuMCkpOwogICAgfQp9
Main.java:65: error: ')' expected
.sorted((s1, s2) -> s2.getBirthDate().compareTo(s1.getBirthDate()))
^
Main.java:65: error: illegal start of expression
.sorted((s1, s2) -> s2.getBirthDate().compareTo(s1.getBirthDate()))
^
Main.java:65: error: ';' expected
.sorted((s1, s2) -> s2.getBirthDate().compareTo(s1.getBirthDate()))
^
Main.java:71: error: illegal start of expression
.mapToDouble(m -> m)
^
Main.java:78: error: illegal start of expression
.filter(s -> countAvgOfGrades(s) < avg)
^
5 errors