From b7e3562f313195141ebeced6c1a9e6e1175324e4 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 8 Mar 2018 16:12:34 -0500 Subject: [PATCH 01/10] MANY COMMITS --- .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 | 364 ++++++++++++++++++ generics.iml | 16 + src/main/java/.deleteme | 0 src/main/java/MyArrayList.java | 2 + src/test/java/.deleteme | 0 src/test/java/MyArrayListTest.java | 2 + 13 files changed, 454 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 delete mode 100644 src/test/java/.deleteme create mode 100644 src/test/java/MyArrayListTest.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..15b1369 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -183,7 +185,7 @@ - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -395,17 +397,12 @@ - - - - - - @@ -430,41 +427,47 @@ + + + + + + - - + - + - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - - + + @@ -478,6 +481,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -491,8 +520,8 @@ - - + + @@ -503,8 +532,8 @@ - - + + @@ -521,6 +550,8 @@ + + diff --git a/src/main/java/MyArrayList.java b/src/main/java/MyArrayList.java index 6d39d46..a9fa91e 100644 --- a/src/main/java/MyArrayList.java +++ b/src/main/java/MyArrayList.java @@ -61,5 +61,9 @@ public void remove(int targetIndex){ this.data = newArray; } + public void set(T[] newArray){ + this.data = newArray; + } + } diff --git a/src/test/java/MyArrayListTest.java b/src/test/java/MyArrayListTest.java index 5dc3c12..426a9d8 100644 --- a/src/test/java/MyArrayListTest.java +++ b/src/test/java/MyArrayListTest.java @@ -25,14 +25,16 @@ public void addTest(){ Assert.assertEquals(five, myArrayList.get(0)); } - @Test - public void removeTest(){ - - } - @Test public void setTest(){ - + Integer one = 1; + Integer two = 2; + Integer three = 3; + Integer four = 4; + Integer five = 5; + Integer[] expected = new Integer[]{one, two, three, four, five}; + myArrayList.set(expected); + Assert.assertEquals(expected, myArrayList.getArray()); } @Test From bab08adc7e3e29634753cffaa4da1ed268314215 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 9 Mar 2018 11:17:38 -0500 Subject: [PATCH 04/10] start set --- .idea/workspace.xml | 56 +++++++++++++++++++++++++++++------- src/main/java/MySet.java | 2 ++ src/test/java/MySetTest.java | 2 ++ 3 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 src/main/java/MySet.java create mode 100644 src/test/java/MySetTest.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 9a96c25..f1d6203 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,9 +2,9 @@ + + - - @@ -435,7 +455,7 @@ - @@ -450,7 +470,7 @@ - + @@ -532,8 +552,8 @@ - - + + @@ -556,6 +576,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/java/MySet.java b/src/main/java/MySet.java new file mode 100644 index 0000000..53f5407 --- /dev/null +++ b/src/main/java/MySet.java @@ -0,0 +1,2 @@ +public class MySet { +} diff --git a/src/test/java/MySetTest.java b/src/test/java/MySetTest.java new file mode 100644 index 0000000..f3f03d5 --- /dev/null +++ b/src/test/java/MySetTest.java @@ -0,0 +1,2 @@ +public class MySetTest { +} From a40c10f72bc47de7035cdb2920586453fc8dd275 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 9 Mar 2018 13:00:19 -0500 Subject: [PATCH 05/10] refactor around mycollection abstract --- .idea/workspace.xml | 323 +++++++++++++++++------------ src/main/java/MyArrayList.java | 58 +----- src/main/java/MyCollection.java | 71 +++++++ src/main/java/MySet.java | 7 +- src/test/java/MyArrayListTest.java | 48 +++++ src/test/java/MySetTest.java | 1 + 6 files changed, 317 insertions(+), 191 deletions(-) create mode 100644 src/main/java/MyCollection.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f1d6203..ff20077 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,9 +2,12 @@ - - + + + + + + + + @@ -205,7 +230,7 @@ - + - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -418,44 +443,44 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - @@ -470,11 +495,11 @@ - + - + @@ -489,6 +514,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - + + + + - + - + @@ -440,14 +445,11 @@ - - - @@ -457,30 +459,33 @@ + + + - - + + - - + + - + - + - - + @@ -492,11 +497,11 @@ - + - + @@ -559,10 +564,10 @@ - - - - + + + + @@ -578,14 +583,16 @@ - + - - + + - - + + + + @@ -593,59 +600,57 @@ - + - - - + + + - + - - + + - - - - - - - - - - + + + - + - - + + - - - - - + + + + + + - + - - + + - - - - - - + + + + + + + + + + diff --git a/src/main/java/MyArrayList.java b/src/main/java/MyArrayList.java index 0e6b1db..c877149 100644 --- a/src/main/java/MyArrayList.java +++ b/src/main/java/MyArrayList.java @@ -3,7 +3,7 @@ public class MyArrayList extends MyCollection { @SuppressWarnings("unchecked") public MyArrayList(){ - this.data = (T[]) new Object[0]; + this(0); } @SuppressWarnings("unchecked") diff --git a/src/main/java/MySet.java b/src/main/java/MySet.java index 085e5b0..fd9c7de 100644 --- a/src/main/java/MySet.java +++ b/src/main/java/MySet.java @@ -1,16 +1,15 @@ -public class MySet extends MyCollection{ +public class MySet extends MyCollection { @SuppressWarnings("unchecked") public MySet(){ this.data = (T[]) new Object[0]; } - public boolean setAdd(T t){ + @Override + public void add(T t){ if (!this.contains(t)) { super.add(t); - return true; } - return false; } } diff --git a/src/test/java/MyArrayListTest.java b/src/test/java/MyArrayListTest.java index e84aacb..cb89b19 100644 --- a/src/test/java/MyArrayListTest.java +++ b/src/test/java/MyArrayListTest.java @@ -7,7 +7,7 @@ public class MyArrayListTest { @Before public void setup(){ - myArrayList = new MyArrayList(); + myArrayList = new MyArrayList<>(); } @Test diff --git a/src/test/java/MySetTest.java b/src/test/java/MySetTest.java index 82907a8..dfec87a 100644 --- a/src/test/java/MySetTest.java +++ b/src/test/java/MySetTest.java @@ -13,16 +13,23 @@ public void setup(){ @Test public void uniqueAddTrueTest(){ Integer one = 1; - Assert.assertTrue(mySet.setAdd(one)); - Assert.assertEquals(mySet.size(), 1); + mySet.add(one); + Assert.assertTrue(mySet.contains(one)); } @Test public void uniqueAddFalseTest(){ Integer one = 1; - mySet.setAdd(one); - Assert.assertFalse(mySet.setAdd(one)); + mySet.add(one); + mySet.add(one); Assert.assertEquals(mySet.size(), 1); } + @Test + public void containsTest(){ + Integer one = 1; + mySet.add(one); + Assert.assertTrue(mySet.contains(one)); + } + } From 3b94f4610b09e153daaa2681e8f0b16c27a5beb4 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 9 Mar 2018 16:04:25 -0500 Subject: [PATCH 09/10] add hashing --- .idea/workspace.xml | 150 +++++++++++++++++------------------ src/main/java/MySet.java | 8 ++ src/test/java/MySetTest.java | 9 +++ 3 files changed, 92 insertions(+), 75 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 6212af5..9751c26 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,9 +2,7 @@ - - @@ -36,11 +34,11 @@ - + - - + + @@ -50,10 +48,10 @@ - + - + @@ -94,8 +92,8 @@ - - + + @@ -232,7 +230,7 @@ - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -445,44 +443,44 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - @@ -553,7 +551,9 @@ - + + @@ -597,30 +597,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -638,7 +614,7 @@ - + @@ -655,6 +631,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/MySet.java b/src/main/java/MySet.java index fd9c7de..bb2ef8f 100644 --- a/src/main/java/MySet.java +++ b/src/main/java/MySet.java @@ -12,4 +12,12 @@ public void add(T t){ } } + public int getHash(){ + int hash = 0; + for (T t:this.data) { + hash += t.hashCode(); + } + return hash; + } + } diff --git a/src/test/java/MySetTest.java b/src/test/java/MySetTest.java index dfec87a..f00ef03 100644 --- a/src/test/java/MySetTest.java +++ b/src/test/java/MySetTest.java @@ -32,4 +32,13 @@ public void containsTest(){ Assert.assertTrue(mySet.contains(one)); } + @Test + public void hashTest(){ + String one = "iowheiorhioewh"; + int expected = one.hashCode(); + mySet.add(one); + int actual = mySet.getHash(); + Assert.assertEquals(expected, actual); + } + } From 072b8c8f20a3d877ec394897651ab2b6aa551c6a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 9 Mar 2018 16:07:51 -0500 Subject: [PATCH 10/10] add varargs add method --- .idea/workspace.xml | 88 ++++++++++++++++++------------------ src/main/java/MySet.java | 6 +++ src/test/java/MySetTest.java | 12 +++++ 3 files changed, 62 insertions(+), 44 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 9751c26..0702f6f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -37,8 +37,8 @@ - - + + @@ -76,8 +76,8 @@ - - + + @@ -92,8 +92,8 @@ - - + + @@ -230,7 +230,7 @@ - + - + - - - - - + + + + + - - - - - + + + + + @@ -443,14 +443,11 @@ - - - @@ -478,9 +475,12 @@ + + + - @@ -488,14 +488,14 @@ - + - + @@ -583,20 +583,6 @@ - - - - - - - - - - - - - - @@ -633,8 +619,8 @@ - - + + @@ -643,10 +629,24 @@ + + + + + + + + + + + + + + - - + + diff --git a/src/main/java/MySet.java b/src/main/java/MySet.java index bb2ef8f..a1298de 100644 --- a/src/main/java/MySet.java +++ b/src/main/java/MySet.java @@ -12,6 +12,12 @@ public void add(T t){ } } + public void add(T... ts){ + for (T t:ts) { + add(t); + } + } + public int getHash(){ int hash = 0; for (T t:this.data) { diff --git a/src/test/java/MySetTest.java b/src/test/java/MySetTest.java index f00ef03..a4ef48f 100644 --- a/src/test/java/MySetTest.java +++ b/src/test/java/MySetTest.java @@ -41,4 +41,16 @@ public void hashTest(){ Assert.assertEquals(expected, actual); } + @Test + public void varArgsAddTest(){ + Integer one = 1; + Integer two = 2; + Integer three = 3; + Integer four = 4; + Integer five = 5; + Integer[] expected = new Integer[]{one, two, three, four, five}; + mySet.add(one, two, three, four, five); + Assert.assertEquals(mySet.getArray(), expected); + } + }