From 8d7754a0ff2c00f4c359b0f3f1e99ce02c2c217e Mon Sep 17 00:00:00 2001 From: ahsonali Date: Sun, 11 Feb 2018 16:53:59 -0500 Subject: [PATCH 1/2] Just need to do string --- .../looplabs/IntegerDuplicateDeleter.java | 131 ++++++++++++++++++ .../looplabs/StringDuplicateDeleter.java | 13 ++ 2 files changed, 144 insertions(+) diff --git a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java index ee550c5..d5f6688 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -1,8 +1,139 @@ package com.zipcodewilmington.looplabs; +import java.util.Arrays; + +import java.lang.reflect.Array; + /** * Created by leon on 1/29/18. * @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); + } + + public static void main (String [] args) + { + Integer[] tester={1, 2, 2, 3, 3, 4, 6, 7, 8, 8, 9}; + int count = counter(tester,3); + System.out.println(count); + //System.out.println(Arrays.toString(deleteNumbers(tester,2))); + + ; + + } + + @Override + //At least a certain number of times + public Integer[] removeDuplicates(int maxNumberOfDuplications) { + + //Calling a method inside of a method + //counter(); + int theDeleteCounter = 0; + Integer [] toTheDelete = new Integer[0]; + Integer [] theAnswerArray = this.array; + + for (int i = 0; i < this.array.length; i++) + { + if ((counter(this.array, this.array[i])) >= maxNumberOfDuplications) + { + toTheDelete = Arrays.copyOf(toTheDelete, toTheDelete.length + 1); + toTheDelete[theDeleteCounter] = this.array[i]; + theDeleteCounter++; + + } + + + + } + + for (Integer i : toTheDelete) + { + theAnswerArray = deleteNumbers(theAnswerArray, i); + } + + return theAnswerArray; + + + } + + @Override + //Exact number of times a duplicate occurs + public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { + //Calling a method inside of a method + int deleteCounter = 0; + Integer [] toDelete = new Integer[0]; + Integer [] answerArray = this.array; + + for (int i = 0; i < this.array.length; i++) + { + if ((counter(this.array, this.array[i])) == exactNumberOfDuplications) + { + toDelete = Arrays.copyOf(toDelete, toDelete.length +1); + toDelete[deleteCounter] = this.array[i]; + deleteCounter++; + + } + + } + + for (Integer i : toDelete) + { + answerArray = deleteNumbers(answerArray, i); + } + + + return answerArray; + } + + public static int counter (Integer[] inputArray, Integer value) + { + + int count = 0; + + /* + for:each loop that goes through every element in the inputArray + */ + for (int element: inputArray){ + + if (element == value) + { + count++; + + } + } + + return count; + + } + + public static Integer [] deleteNumbers(Integer[] inputArray, Integer valueToRemove) { + Integer[] firstArray = inputArray; + Integer[] secondArray = new Integer[0]; + int theCounter = 0; + + // + for (int i = 0; i< inputArray.length; i++) { + if (firstArray[i] != valueToRemove) { + secondArray = Arrays.copyOf(secondArray, secondArray.length + 1); + secondArray[theCounter] = firstArray[i]; + theCounter++; + + } + + } + + return secondArray; + //secondArray is completed + + } + + + + + + } diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index 4818fe3..b3d9914 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -5,4 +5,17 @@ * @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 maxNumberOfDuplications) { + return new String[0]; + } + + @Override + public String[] removeDuplicatesExactly(int exactNumberOfDuplications) { + return new String[0]; + } } From 3e41b805b1c0ad40185c98c149f2e9ee2878696d Mon Sep 17 00:00:00 2001 From: ahsonali Date: Sun, 11 Feb 2018 18:35:09 -0500 Subject: [PATCH 2/2] completed --- .../looplabs/StringDuplicateDeleter.java | 105 +++++++++++++++++- 1 file changed, 102 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index b3d9914..be4a55b 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -1,5 +1,7 @@ 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. @@ -9,13 +11,110 @@ public StringDuplicateDeleter(String[] intArray) { super(intArray); } + public static void main (String [] args){ + String [] aTest = new String[]{"aba", "aba", "bba", "bba", "bba", "bba", "bbb", "bbb"}; + System.out.println(counter(aTest,"bba")); + System.out.println(Arrays.toString((deleteString(aTest,"bbb")))); + } + + @Override public String[] removeDuplicates(int maxNumberOfDuplications) { - return new String[0]; + + int deleteStringsCount = 0; + String [] deleteString = new String[0]; + String [] myAnswerArray = this.array; + + for (int i = 0; i < this.array.length; i++) + { + if((counter(this.array, this.array[i])) >= maxNumberOfDuplications) + { + deleteString = Arrays.copyOf(deleteString, deleteString.length + 1); + deleteString[deleteStringsCount] = this.array[i]; + deleteStringsCount++; + + + } + + + } + + for (String i : deleteString){ + + myAnswerArray = deleteString(myAnswerArray, i); + } + + return myAnswerArray; } + + @Override public String[] removeDuplicatesExactly(int exactNumberOfDuplications) { - return new String[0]; + int deleteCount = 0; + String [] aDeleterString = new String[0]; + String [] finalArray = this.array; + + for (int i = 0; i < this.array.length; i++) + { + if ((counter(this.array, this.array[i])) == exactNumberOfDuplications) + { + aDeleterString = Arrays.copyOf(aDeleterString, aDeleterString.length + 1); + aDeleterString[deleteCount] = this.array[i]; + deleteCount++; + + } + } + + for (String i : aDeleterString) + { + + finalArray = (deleteString(finalArray, i)); + } + + return finalArray; + + } + + + public static int counter(String[] inputArray, String value) { + + int count = 0; + + /* + for:each loop that goes through every element in the inputArray + */ + for (String element : inputArray) { + + if (element.equals(value)) { + count++; + + } + } + + return count; + } -} + + + public static String[] deleteString(String[] inputArray, String valueToRemove) + { + String[] secondStringArray = new String [0]; + int deleteStringCounter = 0; + + for (int i = 0; i < inputArray.length; i++){ + if (!(inputArray[i].equals(valueToRemove))) + { + secondStringArray = Arrays.copyOf(secondStringArray, secondStringArray.length + 1); + secondStringArray[deleteStringCounter] = inputArray[i]; + deleteStringCounter++; + + } + } + + return secondStringArray; + + } + + +} \ No newline at end of file