Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main.java;
- import java.util.ArrayList;
- import java.util.List;
- public class Student {
- private int id;
- private String grade;
- private int age;
- public Student(int id, String grade, int age){
- this.id = id;
- this.grade = grade;
- this.age = age;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getGrade() {
- return grade;
- }
- public void setGrade(String grade) {
- this.grade = grade;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- // group student by grade and having max of age
- public static List<Student> getStudentsWithMaxAgeOfEachGrade(List<Student> students){
- ArrayList<Student> result = new ArrayList<>();
- for(Student s : students){
- boolean found = false;
- for(Student rs : result){
- if(rs.getGrade().equals(s.getGrade()) && rs.getAge() < s.getAge()){
- found = true;
- result.remove(rs);
- result.add(s);
- break;
- }
- }
- if(found == false){
- result.add(s);
- }
- }
- return result;
- }
- public static void main(String[] args) {
- List<Student> students = new ArrayList<>();
- Student s1 = new Student(1, "a", 32);
- Student s2 = new Student(2, "a", 34);
- Student s3 = new Student(3, "b", 23);
- students.add(s1);
- students.add(s2);
- students.add(s3);
- List<Student> result = getStudentsWithMaxAgeOfEachGrade(students);
- for(Student s : result){
- System.out.println(s.getGrade() + ":" + s.getAge());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement