diff --git a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java index c176838..fb1195e 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/DuplicateDeleter.java @@ -12,4 +12,4 @@ public DuplicateDeleter(T[] intArray) { abstract public T[] removeDuplicates(int maxNumberOfDuplications); abstract public T[] removeDuplicatesExactly(int exactNumberOfDuplications); -} \ No newline at end of file +} 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/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..28f75f3 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -1,8 +1,77 @@ 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(String[] intArray) { + + super(intArray); + } + + @Override + + public String[] 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.length() < 1){ + String[] emptyString = new String[]{}; + return emptyString; + } + String[] resultStringArray = theRealest.split(" "); + return resultStringArray; + } + + @Override + public String[] 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(" "); + // String[] resultIntArray = new String[resultStringArray.length]; + + // for (int m = 0; m < resultIntArray.length; m++) { + // resultIntArray[m] = Integer.parseInt(resultStringArray[m]); + // } + + return resultStringArray; + } } + + +// 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() { + } }