From fd882d393dd4e96ea1904a6bce86836f21a26a61 Mon Sep 17 00:00:00 2001 From: Joe Hendricks Date: Fri, 9 Mar 2018 16:57:19 -0500 Subject: [PATCH 1/2] List and Set complete --- .idea/.name | 1 + .idea/compiler.xml | 16 + .idea/libraries/Maven__junit_junit_4_12.xml | 13 + .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 + .idea/misc.xml | 13 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 703 ++++++++++++++++++ generics.iml | 16 + src/main/java/.deleteme | 0 src/main/java/MyArrayList.java | 129 ++++ src/main/java/MyMap.java | 6 + src/main/java/MySet.java | 44 ++ src/test/java/.deleteme | 0 src/test/java/MyArrayListTest.java | 280 +++++++ src/test/java/MyMapTest.java | 9 + src/test/java/MySetTest.java | 111 +++ 17 files changed, 1368 insertions(+) create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 generics.iml delete mode 100644 src/main/java/.deleteme create mode 100644 src/main/java/MyArrayList.java create mode 100644 src/main/java/MyMap.java create mode 100644 src/main/java/MySet.java delete mode 100644 src/test/java/.deleteme create mode 100644 src/test/java/MyArrayListTest.java create mode 100644 src/test/java/MyMapTest.java create mode 100644 src/test/java/MySetTest.java diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..1f58a0f --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +generics \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..c20d346 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 0000000..d411041 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..f58bbc1 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d30d09e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ca63f44 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..37b1d37 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + @@ -268,15 +179,6 @@ - - - - - - - - - - + - + - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -497,81 +399,82 @@ - - 1520539460154 + + 1520638366384 - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + - - + + @@ -581,121 +484,67 @@ - - + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - + + + + + + - + - - + + - - - - - - + + - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - + - + - - - - - - - - - - - - - - + + + diff --git a/src/main/java/MyArrayList.java b/src/main/java/MyArrayList.java index 6071923..bd7a663 100644 --- a/src/main/java/MyArrayList.java +++ b/src/main/java/MyArrayList.java @@ -66,13 +66,11 @@ public void remove(int index){ } public boolean removeObject(T object){ + int count = 0; + int remove = 0; if(!contains(object)){ return false; } - - int count = 0; - int remove = 0; - for (int i = 0; i < this.myArray.length; i++) { if (this.myArray[i] == object) { count++; diff --git a/src/main/java/MyMap.java b/src/main/java/MyMap.java index a9968dc..0f8798b 100644 --- a/src/main/java/MyMap.java +++ b/src/main/java/MyMap.java @@ -1,6 +1,78 @@ public class MyMap { - K key; - V value; + private MyArrayList entries; + public MyMap(){ + this.entries = new MyArrayList<>(); + } + + public void put(K key, V value){ + for(int i = 0; i < entries.size(); i++){ + if (entries.get(i).getKey().equals(key)){ + entries.set(i , new Entry<>(key, value)); + break; + } + } + entries.add(new Entry<>(key, value)); + } + + public Object get(K key){ + for(int i = 0; i < entries.size(); i++){ + if(entries.get(i).getKey().equals(key)){ + return entries.get(i).getValue(); + } + } + return null; + } + + public void remove(K key){ + for(int i = 0; i < entries.size(); i++){ + if(entries.get(i).getKey().equals(key)){ + entries.remove(i); + break; + } + } + } + + public boolean containsKey(K key){ + for(int i = 0; i < entries.size(); i++){ + if(entries.get(i).getKey().equals(key)){ + return true; + } + } + return false; + } + + public boolean containsValue(V value){ + for(int i = 0; i < entries.size(); i++){ + if(entries.get(i).getValue().equals(value)){ + return true; + } + } + return false; + } + + public void clear(){ + this.entries.clear(); + } + + private class Entry { + + private K key; + private V value; + + public Entry(K key, V value) { + this.key = key; + this.value = value; + } + + public K getKey() { + return key; + } + + public V getValue() { + + return value; + } + } } diff --git a/src/main/java/MySet.java b/src/main/java/MySet.java index 61733ac..418c476 100644 --- a/src/main/java/MySet.java +++ b/src/main/java/MySet.java @@ -1,15 +1,11 @@ public class MySet { - MyArrayList myArrayList; + private MyArrayList myArrayList; public MySet(){ this.myArrayList = new MyArrayList<>(); } - public MySet(T[] array){ - - } - public void add(T value) { if(!myArrayList.contains(value)){ myArrayList.add(value); @@ -24,6 +20,10 @@ public void addAll(T[] array){ } } + public int size(){ + return this.myArrayList.size(); + } + public void clear() { myArrayList.clear(); } diff --git a/src/test/java/MyMapTest.java b/src/test/java/MyMapTest.java index e9b2133..d1eec61 100644 --- a/src/test/java/MyMapTest.java +++ b/src/test/java/MyMapTest.java @@ -1,9 +1,96 @@ + + +import org.junit.Assert; +import org.junit.Test; + import static org.junit.Assert.*; public class MyMapTest { + @Test + public void getTest(){ + //Given + MyMap myMapTest = new MyMap<>(); + + //When + Object expected = null; + Object actual = myMapTest.get("Bridget"); + + //Then + Assert.assertEquals(expected, actual); + } + + @Test + public void putTest(){ + //Given + MyMap myMapTest = new MyMap<>(); + myMapTest.put("Gary", 8); + + //When + Object expected = 8; + Object actual = myMapTest.get("Gary"); + + //Then + Assert.assertEquals(expected, actual); + } + + @Test + public void removeTest(){ + //Given + MyMap myMapTest = new MyMap<>(); + myMapTest.put("Elvis", 10); + myMapTest.remove("Elvis"); + + //When + Object expected = null; + Object actual = myMapTest.get("Elvis"); + + //Then + Assert.assertEquals(expected, actual); + } + + @Test + public void containsKeyTest(){ + //Given + MyMap myMapTest = new MyMap<>(); + myMapTest.put("Roger", 22); + + //When + boolean expected = true; + boolean actual = myMapTest.containsKey("Roger"); + + //Then + Assert.assertEquals(expected, actual); + } + + @Test + public void containsValueTest(){ + //Given + MyMap myMapTest = new MyMap<>(); + myMapTest.put("Roger", 22); + + //When + boolean expected = true; + boolean actual = myMapTest.containsValue(22); + + //Then + Assert.assertEquals(expected, actual); + } + @Test + public void clear(){ + //Given + MyMap myMapTest = new MyMap<>(); + myMapTest.put("George", 88); + myMapTest.put("Alex", 28); + myMapTest.clear(); + //When + Object expected = null; + Object actual = myMapTest.get("George"); + //Then + Assert.assertEquals(expected, actual); + } } \ No newline at end of file diff --git a/src/test/java/MySetTest.java b/src/test/java/MySetTest.java index cf29f9b..dd1ae1e 100644 --- a/src/test/java/MySetTest.java +++ b/src/test/java/MySetTest.java @@ -108,4 +108,19 @@ public void isEmptyTest() { Assert.assertEquals(expected, actual); } + @Test + public void sizeTest(){ + //Given + MySet setTest = new MySet<>(); + setTest.add("Bobby"); + setTest.add("Peter"); + setTest.add("Judy"); + + //When + int expected = 3; + int actual = setTest.size(); + + //Then + Assert.assertEquals(expected, actual); + } } \ No newline at end of file