Помогите, пожалуйста, сделать, я уже неделю сижу над этим заданием и просто ничего не получается, так как важным условием еще есть не использовать массивы, а использовать Collection Framework
классы: Институт (название, список факультетов) Факультет (название, список студентов) Студент (имя, фамилия, номер зачетной книжки, средний балл)
Задача: 1) найти общее количество студентов, которые учатся в институте 2) Найти факультет, на котором учится наибольшее количество студентов 3) Составить список студентов, у которых средний балл в диапазоне 95..100
Student
public class Student {
private String firstName;
private String lastName;
private String id;
private double avgGrade;
public Student(String firstName, String lastName, String id, double avgGrade) {
this.firstName = firstName;
this.lastName = lastName;
this.id = id;
this.avgGrade = avgGrade;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getId() {
return id;
}
public double getAvgGrade() {
return avgGrade;
}
@Override
public String toString() {
return "Student{" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", id='" + id + '\'' +
", avgGrade=" + avgGrade +
'}';
}
}
Faculty
import java.util.List;
public class Faculty {
private String name;
private List<Student> studentList;
public Faculty(String name, List<Student> studentList) {
this.name = name;
this.studentList = studentList;
}
public String getName() {
return name;
}
public List<Student> getStudentList() {
return studentList;
}
}
Institute
import java.util.List;
public class Institute {
private String name;
private List<Faculty> facultyList;
public Institute(String name, List<Faculty> facultyList) {
this.name = name;
this.facultyList = facultyList;
}
public String getName() {
return name;
}
public List<Faculty> getFacultyList() {
return facultyList;
}
}
Main
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Institute institute = new Institute("Oxford", new ArrayList<Faculty>() {
{
add(new Faculty("Math", new LinkedList<Student>() {
{
add(new Student("White", "John", "WJ0123", 66.89));
add(new Student("Black", "Mike", "BM4567", 36.93));
add(new Student("Jackson", "Stue", "JS8475", 98.54));
}
}));
add(new Faculty("ComputerScience", new LinkedList<Student>() {
{
add(new Student("Starr", "George", "GS8974", 97.25));
add(new Student("Arnold", "Rock", "AR2354", 85.65));
}
}));
}
});
long studentCount = institute.getFacultyList().stream()
.mapToLong(faculty -> faculty.getStudentList().size())
.sum();
System.out.println("studentCount = " + studentCount);
Optional<Faculty> facultyMaxStudents = institute.getFacultyList().stream()
.max(Comparator.comparingInt(faculty -> faculty.getStudentList().size()));
facultyMaxStudents.ifPresent(faculty -> System.out.println(faculty.getName()));
List<Student> studentList = institute.getFacultyList().stream()
.flatMap(faculty -> faculty.getStudentList().stream())
.filter(student -> student.getAvgGrade() >= 95 && student.getAvgGrade() <= 100)
.collect(Collectors.toList());
System.out.println("studentList = " + studentList);
}
}
Enjoy %)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости