lots of exercises in java... from https://github.com/exercism/java

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.TreeSet;
  7. public class School {
  8. private final Map<Integer, Set<String>> database = new HashMap<Integer, Set<String>>();
  9. public Map<Integer, Set<String>> db() {
  10. // Leaks internal storage to caller
  11. return database;
  12. }
  13. public void add(String student, int grade) {
  14. Set<String> students = grade(grade);
  15. students.add(student);
  16. }
  17. public Set<String> grade(int grade) {
  18. // Leaks internal storage to caller
  19. if (!database.containsKey(grade)) {
  20. database.put(grade, new TreeSet<String>());
  21. }
  22. return database.get(grade);
  23. }
  24. public Map<Integer, List<String>> sort() {
  25. Map<Integer, List<String>> sortedStudents = new HashMap<Integer, List<String>>();
  26. for (Integer grade : database.keySet()) {
  27. // Relies on using a TreeSet internally
  28. List<String> sortedGrade = new ArrayList<String>(database.get(grade));
  29. sortedStudents.put(grade, sortedGrade);
  30. }
  31. return sortedStudents;
  32. }
  33. }