From 1c4c12fd9f2e2ba62848a113aff60a397aae0185 Mon Sep 17 00:00:00 2001 From: jorge Date: Thu, 11 Mar 2021 21:40:02 -0500 Subject: [PATCH 1/2] all but reverse and getall names pass --- .../phonebook/PhoneBook.java | 43 +++++++++++++------ .../phonebook/RemoveTest.java | 8 ++++ 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java b/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java index d4a35dc..a4d655f 100644 --- a/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java +++ b/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java @@ -1,11 +1,8 @@ package com.zipcodewilmington.phonebook; -import java.util.List; -import java.util.ArrayList; +import java.util.*; //import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; + /** * Created by leon on 1/23/18. @@ -16,39 +13,61 @@ public class PhoneBook { private final Map> phonebook; public PhoneBook(Map> map) { - this.phonebook = null; + this.phonebook = map; } public PhoneBook() { - this(null); + this.phonebook = new HashMap>(); } public void add(String name, String phoneNumber) { + phonebook.put(name,new ArrayList()); + phonebook.get(name).add(phoneNumber); } public void addAll(String name, String... phoneNumbers) { + phonebook.put(name, Arrays.asList(phoneNumbers)); + } public void remove(String name) { + phonebook.remove(name); } public Boolean hasEntry(String name) { - return null; + if(phonebook.containsKey(name)){ + return true; + } + + return false; + } + public Boolean hasEntry(String name, String string) { + if(phonebook.containsKey(name)){ + return true; + } + return false; } public List lookup(String name) { - return null; + return phonebook.get(name); } - public String reverseLookup(String phoneNumber) { + public String reverseLookup(String phoneNumber) { + for (String key : phonebook.keySet()) { + if (phoneNumber.equals(phonebook.get(key))) { + return key; + } + } return null; } public List getAllContactNames() { - return null; +// List newList = new ArrayList<>(phonebook.keySet()); +// return newList; + return new ArrayList<>(phonebook.keySet()); } public Map> getMap() { - return null; + return phonebook; } } diff --git a/src/test/java/com/zipcodewilmington/phonebook/RemoveTest.java b/src/test/java/com/zipcodewilmington/phonebook/RemoveTest.java index 6ff15a1..59a5d82 100644 --- a/src/test/java/com/zipcodewilmington/phonebook/RemoveTest.java +++ b/src/test/java/com/zipcodewilmington/phonebook/RemoveTest.java @@ -3,6 +3,11 @@ import org.junit.Assert; import org.junit.Test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class RemoveTest { @Test public void test1() { @@ -13,6 +18,9 @@ public void test1() { phoneBook.add(name, phoneNumber); Assert.assertTrue(phoneBook.hasEntry(name, phoneNumber)); + Map> demoPhonebook = phoneBook.getMap(); + PhoneBook newPhoneBook = new PhoneBook(demoPhonebook); + // when phoneBook.remove(name); From 263806403f205dc4941ad937512a1e9d83623019 Mon Sep 17 00:00:00 2001 From: jorge Date: Fri, 12 Mar 2021 18:47:55 -0500 Subject: [PATCH 2/2] all but reverse and getall names pass --- .../phonebook/PhoneBook.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java b/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java index a4d655f..9c6546c 100644 --- a/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java +++ b/src/main/java/com/zipcodewilmington/phonebook/PhoneBook.java @@ -17,7 +17,7 @@ public PhoneBook(Map> map) { } public PhoneBook() { - this.phonebook = new HashMap>(); + this.phonebook = new LinkedHashMap>(); } public void add(String name, String phoneNumber) { @@ -53,18 +53,20 @@ public List lookup(String name) { } public String reverseLookup(String phoneNumber) { - for (String key : phonebook.keySet()) { - if (phoneNumber.equals(phonebook.get(key))) { - return key; - } - } - return null; + String list = ""; + for(String key: phonebook.keySet()){ + if(phonebook.get(key).equals(phoneNumber)) { + list = list.concat(key); + return list; + } + } + return null; } public List getAllContactNames() { -// List newList = new ArrayList<>(phonebook.keySet()); -// return newList; - return new ArrayList<>(phonebook.keySet()); + LinkedHashMap> newMap = new LinkedHashMap>(); + newMap.putAll(phonebook); + return new ArrayList(newMap.keySet()); } public Map> getMap() {