From d92937682225463223b4f463c108f67ef6fe56a3 Mon Sep 17 00:00:00 2001 From: Kthomas Date: Sun, 11 Feb 2018 23:16:05 -0500 Subject: [PATCH 1/2] The lid --- .../looplabs/DuplicateDeleter.java | 2 +- .../looplabs/IntegerDuplicateDeleter.java | 73 ++++++++++++++++ .../looplabs/RandomNumberFactory.java | 3 +- .../looplabs/StringDuplicateDeleter.java | 84 +++++++++++++++++++ .../looplabs/IntegerDuplicateDeleterTest.java | 8 ++ 5 files changed, 167 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java index c176838..60f2b3d 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java @@ -11,5 +11,5 @@ public DuplicateDeleter(T[] intArray) { } abstract public T[] removeDuplicates(int maxNumberOfDuplications); - abstract public T[] removeDuplicatesExactly(int exactNumberOfDuplications); + abstract public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications); } \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java index ee550c5..9efb5f0 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -5,4 +5,77 @@ * @ATTENTION_TO_STUDENTS You are forbidden from modifying the signature of this class. */ public final class IntegerDuplicateDeleter extends DuplicateDeleter { + + public IntegerDuplicateDeleter(Integer[] intArray) { + + super(intArray); + } + + @Override + public Integer[] removeDuplicates(int maxCopies) { + + StringBuilder goku = new StringBuilder(); + + for (Integer ssjGoku : array) { + + int count = 0; + + for (int i = 0; i < array.length; i++) { + Integer gokuLevel = array[i]; + if (ssjGoku == gokuLevel) + count++; + } + + if (count < maxCopies) { + goku.append(ssjGoku); + goku.append(" "); + } + } + + String[] powerUp = goku.toString().split(" "); + if (goku.toString().isEmpty()){ + + return new Integer[0]; + } + + Integer[] ssjTwo = new Integer[powerUp.length]; + for (int i = 0; i < powerUp.length; i++) { + + if (!powerUp[i].isEmpty()) { + ssjTwo[i] = new Integer(powerUp[i]); + } + } + + return ssjTwo; + } + + @Override + public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { + + StringBuilder vegeta = new StringBuilder(); + + for (Integer integer : array) { + int count = 0; + + for (int i = 0; i < array.length; i++) { + Integer comp = array[i]; + if (integer == comp) + count++; + } + + if (count != exactNumberOfDuplications) { + vegeta.append(integer); + vegeta.append(" "); + } + } + + String[] ssjVegeta = vegeta.toString().split(" "); + Integer[] superVegeta = new Integer[ssjVegeta.length]; + for (int i = 0; i < ssjVegeta.length; i++) { + superVegeta[i] = new Integer(superVegeta[i]); + } + + return superVegeta; + } } + diff --git a/src/main/java/com/zipcodewilmington/looplabs/RandomNumberFactory.java b/src/main/java/com/zipcodewilmington/looplabs/RandomNumberFactory.java index 984cff6..8aa742f 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/RandomNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/looplabs/RandomNumberFactory.java @@ -8,8 +8,7 @@ */ public final class RandomNumberFactory { private static volatile Random random = new Random(); - - private RandomNumberFactory() { + private RandomNumberFactory() { } /** * @param min diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index 4818fe3..d75b19c 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -1,8 +1,92 @@ package com.zipcodewilmington.looplabs; +import java.util.Arrays; /** * Created by leon on 1/28/18. * @ATTENTION_TO_STUDENTS You are forbidden from modifying the signature of this class. */ public final class StringDuplicateDeleter extends DuplicateDeleter { + + public StringDuplicateDeleter(Integer[] intArray) { + + super(intArray); + } + + @Override + + public Integer[] removeDuplicates(int maxDuplications) { + + String theRealest = ""; + int counter = 0; + + for (int i = 0; i < this.array.length; i++) { + for (int j = 0; j < this.array.length; j++) { + if (this.array[i].equals(this.array[j])) { + counter++; + } + } + + if (counter < maxDuplications) { + theRealest += this.array[i] + " "; + } + + counter = 0; + } + + if (theRealest == "") { + String[] newArray = new String[0]; + Integer[] resultIntArr = new Integer[newArray.length]; + for (int k = 0; k < resultIntArr.length; k++) { + resultIntArr[k] = Integer.parseInt(newArray[k]); + } + + return resultIntArr; + } + + else { + String[] resultStringArr = theRealest.split(" "); + Integer[] resultIntArr = new Integer[resultStringArr.length]; + for (int m = 0; m < resultIntArr.length; m++) { + resultIntArr[m] = Integer.parseInt(resultStringArr[m]); + } + + return resultIntArr; + } + } + + + @Override + public Integer[] removeDuplicatesExactly(int exactDuplications) { + + String theRealest = ""; + int counter = 0; + + for (int i = 0; i < this.array.length; i++) { + for (int k = 0; k < this.array.length; k++) { + + if (this.array[i].equals(this.array[k])) { + counter++; + } + } + + if (counter != exactDuplications) { + theRealest += this.array[i] + " "; + } + + counter = 0; + } + + String[] resultStringArray = theRealest.split(" "); + Integer[] resultIntArray = new Integer[resultStringArray.length]; + + for (int m = 0; m < resultIntArray.length; m++) { + resultIntArray[m] = Integer.parseInt(resultStringArray[m]); + } + + return resultIntArray; + } } + + +// the basket.. + diff --git a/src/test/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleterTest.java b/src/test/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleterTest.java index 3388c27..1a5ade3 100644 --- a/src/test/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleterTest.java +++ b/src/test/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleterTest.java @@ -180,4 +180,12 @@ public void testRemoveDuplicatesIdempotence() { System.out.println("Input:\n\t" + Arrays.toString(input)); TestUtils.assertArrayEquality(expected, actual); } + + @Test + public void removeDuplicates() { + } + + @Test + public void removeDuplicatesExactly() { + } } From 5dec31e56764169a609724b273a693c51657ca96 Mon Sep 17 00:00:00 2001 From: Kthomas Date: Mon, 12 Feb 2018 13:32:20 -0500 Subject: [PATCH 2/2] Working code now but not done yet --- .../looplabs/DuplicateDeleter.java | 4 +- .../looplabs/DuplicateDeleterInterface.java | 1 + .../looplabs/StringDuplicateDeleter.java | 45 +++++++------------ 3 files changed, 18 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java index 60f2b3d..fb1195e 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java @@ -11,5 +11,5 @@ public DuplicateDeleter(T[] intArray) { } abstract public T[] removeDuplicates(int maxNumberOfDuplications); - abstract public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications); -} \ No newline at end of file + abstract public T[] removeDuplicatesExactly(int exactNumberOfDuplications); +} diff --git a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleterInterface.java b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleterInterface.java index 058f8f9..afe8805 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleterInterface.java +++ b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleterInterface.java @@ -7,4 +7,5 @@ public interface DuplicateDeleterInterface { T[] removeDuplicates(int maxNumberOfDuplications); T[] removeDuplicatesExactly(int exactNumberOfDuplications); + } \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index d75b19c..28f75f3 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -7,14 +7,14 @@ */ public final class StringDuplicateDeleter extends DuplicateDeleter { - public StringDuplicateDeleter(Integer[] intArray) { + public StringDuplicateDeleter(String[] intArray) { super(intArray); } @Override - public Integer[] removeDuplicates(int maxDuplications) { + public String[] removeDuplicates(int maxDuplications) { String theRealest = ""; int counter = 0; @@ -26,37 +26,22 @@ public Integer[] removeDuplicates(int maxDuplications) { } } - if (counter < maxDuplications) { - theRealest += this.array[i] + " "; + if (counter < maxDuplications) { + theRealest += this.array[i] + " "; } counter = 0; } - - if (theRealest == "") { - String[] newArray = new String[0]; - Integer[] resultIntArr = new Integer[newArray.length]; - for (int k = 0; k < resultIntArr.length; k++) { - resultIntArr[k] = Integer.parseInt(newArray[k]); - } - - return resultIntArr; - } - - else { - String[] resultStringArr = theRealest.split(" "); - Integer[] resultIntArr = new Integer[resultStringArr.length]; - for (int m = 0; m < resultIntArr.length; m++) { - resultIntArr[m] = Integer.parseInt(resultStringArr[m]); - } - - return resultIntArr; + if (theRealest.length() < 1){ + String[] emptyString = new String[]{}; + return emptyString; } + String[] resultStringArray = theRealest.split(" "); + return resultStringArray; } - @Override - public Integer[] removeDuplicatesExactly(int exactDuplications) { + public String[] removeDuplicatesExactly(int exactDuplications) { String theRealest = ""; int counter = 0; @@ -77,13 +62,13 @@ public Integer[] removeDuplicatesExactly(int exactDuplications) { } String[] resultStringArray = theRealest.split(" "); - Integer[] resultIntArray = new Integer[resultStringArray.length]; + // String[] resultIntArray = new String[resultStringArray.length]; - for (int m = 0; m < resultIntArray.length; m++) { - resultIntArray[m] = Integer.parseInt(resultStringArray[m]); - } + // for (int m = 0; m < resultIntArray.length; m++) { + // resultIntArray[m] = Integer.parseInt(resultStringArray[m]); + // } - return resultIntArray; + return resultStringArray; } }