University stuff.
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import java.util.HashMap;
  2. class Person {
  3. public String navn;
  4. public HashMap<String, DVD> arkiv = new HashMap<String, DVD>();
  5. public HashMap<String, DVD> laante = new HashMap<String, DVD>();
  6. public HashMap<String, DVD> utlaante = new HashMap<String, DVD>();
  7. Person(String navn) {
  8. this.navn = navn;
  9. }
  10. public void leggTilArkiv(DVD dvd) {
  11. arkiv.put(dvd.navn, dvd);
  12. }
  13. public void laanUt(DVD dvd, Person laaner) throws Exception {
  14. if (!arkiv.containsKey(dvd.navn)) {
  15. throw new Exception(this.navn+" har ikke DVDen "+dvd.navn+".");
  16. }
  17. arkiv.remove(dvd.navn);
  18. utlaante.put(dvd.navn, dvd);
  19. dvd.laaner = laaner;
  20. laaner.laante.put(dvd.navn, dvd);
  21. }
  22. public void returner(DVD dvd) throws Exception {
  23. if (!laante.containsKey(dvd.navn)) {
  24. throw new Exception(this.navn+" laaner ikke DVDen "+dvd.navn+".");
  25. }
  26. if (!dvd.eier.utlaante.containsKey(dvd.navn)) {
  27. throw new Exception(dvd.eier.navn+" laaner ikke ut DVDen "+dvd.navn+".");
  28. }
  29. laante.remove(dvd.navn);
  30. dvd.laaner = null;
  31. dvd.eier.utlaante.remove(dvd.navn);
  32. dvd.eier.leggTilArkiv(dvd);
  33. }
  34. public DVD finnDvd(String navn) {
  35. return arkiv.get(navn);
  36. }
  37. public String prettyPrintStats() {
  38. String res;
  39. res = "Person '"+navn+"'\n";
  40. res += " Antall DVDer i arkiv: "+arkiv.size()+"\n";
  41. res += " Antall DVDer laant: "+laante.size()+"\n";
  42. res += " Antall DVDer utlaant: "+utlaante.size();
  43. return res;
  44. }
  45. public String prettyPrint() {
  46. String res;
  47. res = "Person '"+navn+"'\n";
  48. if (arkiv.size() == 0) {
  49. res += " Eier ingen DVDer.\n";
  50. } else {
  51. res += " Eier:\n";
  52. for (DVD dvd: arkiv.values()) {
  53. res += " "+dvd.prettyPrint(false)+"\n";
  54. }
  55. }
  56. if (laante.size() == 0) {
  57. res += " Laaner ingen DVDer.\n";
  58. } else {
  59. res += " Laaner:\n";
  60. for (DVD dvd: laante.values()) {
  61. res += " "+dvd.prettyPrint(false)+"\n";
  62. }
  63. }
  64. if (utlaante.size() == 0) {
  65. res += " Laaner ikke ut noen DVDer.";
  66. } else {
  67. res += " Laaner ut:\n";
  68. for (DVD dvd: utlaante.values()) {
  69. res += " "+dvd.prettyPrint(true)+"\n";
  70. }
  71. }
  72. //Remove last newline
  73. res = res.substring(0, res.length() - 1);
  74. return res;
  75. }
  76. }