Build a simple PhoneBook program.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import java.util.*;
  2. /**
  3. * Created by leon on 1/23/18.
  4. */
  5. public class PhoneBook {
  6. Map<String, ArrayList<String> > entries = new TreeMap<String, ArrayList<String>>();
  7. public void add(String name, String phoneNumber){
  8. if(this.entries.get(name) != null){
  9. this.entries.get(name).add(phoneNumber);
  10. } else {
  11. ArrayList<String> pn = new ArrayList<String>();
  12. pn.add(phoneNumber);
  13. this.entries.put(name, pn);
  14. }
  15. }
  16. public void removePhoneNumber(String name, String phoneNumber){
  17. ArrayList<String> numbers = this.entries.get(name);
  18. if(numbers != null){
  19. int indexOf = numbers.indexOf(phoneNumber);
  20. if(indexOf >= 0){
  21. numbers.remove(indexOf);
  22. }
  23. }
  24. }
  25. public void removeRecord(String name){
  26. this.entries.remove(name);
  27. }
  28. public String lookUp(String name){
  29. StringBuilder sb = new StringBuilder();
  30. ArrayList<String> entry = this.entries.get(name);
  31. if(entry != null){
  32. for(String phoneNumber : entry){
  33. sb.append(phoneNumber);
  34. }
  35. }
  36. return sb.toString();
  37. }
  38. public String reverseLoopup(String phoneNumber){
  39. String name = null;
  40. for(Map.Entry<String, ArrayList<String>> entry: this.entries.entrySet()){
  41. for(String pn : entry.getValue()){
  42. if(pn.equals(phoneNumber)){
  43. name = entry.getKey();
  44. }
  45. }
  46. }
  47. return name;
  48. }
  49. public String display() {
  50. StringBuilder sb = new StringBuilder();
  51. for(Map.Entry<String, ArrayList<String>> entry :this.entries.entrySet()){
  52. sb.append(entry.getKey());
  53. sb.append(": ");
  54. for(String pn : entry.getValue()){
  55. sb.append(pn);
  56. //sb.append(" ");
  57. }
  58. }
  59. return sb.toString();
  60. }
  61. }