fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9. Army army = new Army();
  10.  
  11. Division division = new Division("8th Infantry Division");
  12.  
  13. try {
  14. army.addDivision(division);
  15. } catch (DivisionValidateException e) {
  16. e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
  17. }
  18.  
  19. try {
  20. army.addDivision(division);
  21. } catch (DivisionValidateException e) {
  22. e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
  23. }
  24. }
  25. }
  26.  
  27. class Army {
  28. private Set<Division> divisions = new HashSet<Division>();
  29.  
  30. public void addDivision(Division division) throws DivisionValidateException {
  31. if (divisions.contains(division)) {
  32. throw new DivisionValidateException("Division with divisionName = \"" + division.getDivisionName()
  33. + "\" already exists in the army");
  34. }
  35. divisions.add(division);
  36. }
  37.  
  38. }
  39.  
  40.  
  41. class Division {
  42. private String divisionName;
  43.  
  44. public Division(String divisionName) {
  45. this.divisionName = divisionName;
  46. }
  47.  
  48. public String getDivisionName() {
  49. return divisionName;
  50. }
  51.  
  52. @Override
  53. public boolean equals(Object o) {
  54. if (this == o) return true;
  55. if (o == null || getClass() != o.getClass()) return false;
  56.  
  57. Division division = (Division) o;
  58.  
  59. if (!divisionName.equals(division.divisionName)) return false;
  60.  
  61. return true;
  62. }
  63.  
  64. @Override
  65. public int hashCode() {
  66. return divisionName.hashCode();
  67. }
  68. }
  69.  
  70. class DivisionValidateException extends Exception {
  71. public DivisionValidateException(String message) {
  72. super(message);
  73. }
  74. }
Success #stdin #stdout #stderr 0.1s 27848KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
DivisionValidateException: Division with divisionName = "8th Infantry Division" already exists in the army
	at Army.addDivision(Main.java:32)
	at Main.main(Main.java:20)