import java.util.*; /** * Created by leon on 1/23/18. */ public class PhoneBook { Map > entries = new TreeMap>(); public void add(String name, String phoneNumber){ if(this.entries.get(name) != null){ this.entries.get(name).add(phoneNumber); } else { ArrayList pn = new ArrayList(); pn.add(phoneNumber); this.entries.put(name, pn); } } public void removePhoneNumber(String name, String phoneNumber){ ArrayList numbers = this.entries.get(name); if(numbers != null){ int indexOf = numbers.indexOf(phoneNumber); if(indexOf >= 0){ numbers.remove(indexOf); } } } public void removeRecord(String name){ this.entries.remove(name); } public String lookUp(String name){ StringBuilder sb = new StringBuilder(); ArrayList entry = this.entries.get(name); if(entry != null){ for(String phoneNumber : entry){ sb.append(phoneNumber); } } return sb.toString(); } public String reverseLoopup(String phoneNumber){ String name = null; for(Map.Entry> entry: this.entries.entrySet()){ for(String pn : entry.getValue()){ if(pn.equals(phoneNumber)){ name = entry.getKey(); } } } return name; } public String display() { StringBuilder sb = new StringBuilder(); for(Map.Entry> entry :this.entries.entrySet()){ sb.append(entry.getKey()); sb.append(": "); for(String pn : entry.getValue()){ sb.append(pn); //sb.append(" "); } } return sb.toString(); } }