Sha256: d516af9a88cf0cab5e5ac08cd24fd0411199e1ca5cff43b53feda7113e27085e

Contents?: true

Size: 1.07 KB

Versions: 212

Compression:

Stored size: 1.07 KB

Contents

import java.util.*;

public class School {

  private final Map<Integer, List<String>> database = new HashMap<>();

  public int numberOfStudents() {
    int result = 0;
    for (List<String> studentsInGrade: database.values()) {
      result += studentsInGrade.size();
    }
    return result;
  }

  public void add(String student, int grade) {
    List<String> students = fetchGradeFromDatabase(grade);
    students.add(student);
  }

  public List<String> grade(int grade) {
    return new ArrayList<>(fetchGradeFromDatabase(grade));
  }

  private List<String> fetchGradeFromDatabase(int grade) {
    if (!database.containsKey(grade)) {
      database.put(grade, new LinkedList<>());
    }
    return database.get(grade);
  }

  public Map<Integer, List<String>> studentsByGradeAlphabetical() {
    Map<Integer, List<String>> sortedStudents = new HashMap<>();
    for (Integer grade : database.keySet()) {
      List<String> studentsInGrade = database.get(grade);
      Collections.sort(studentsInGrade);
      sortedStudents.put(grade, studentsInGrade);
    }
    return sortedStudents;
  }
}

Version data entries

212 entries across 212 versions & 1 rubygems

Version Path
trackler-2.2.1.72 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.71 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.70 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.69 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.68 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.67 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.66 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.65 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.64 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.63 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.62 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.61 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.60 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.59 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.58 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.57 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.56 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.55 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.54 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java
trackler-2.2.1.53 tracks/java/exercises/grade-school/.meta/src/reference/java/School.java