From 0b3e22f4e471c90d0f80dac5c837eb53dc91c344 Mon Sep 17 00:00:00 2001 From: April Rivera Date: Sun, 11 Feb 2018 20:06:13 -0500 Subject: [PATCH 1/2] first commit --- .../looplabs/IntegerDuplicateDeleter.java | 80 ++++++++++++++++++- .../looplabs/StringDuplicateDeleter.java | 13 +++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java index ee550c5..53826a5 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -1,8 +1,86 @@ package com.zipcodewilmington.looplabs; +import java.util.Arrays; + /** * 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 boolean elementOccursLessTimesThanMaxThreshhold(int elementBeingExamined, int maxNumberOfDuplications) { + int occurencesOfElement = 0; + for (int value : this.array) { + if (value == elementBeingExamined) { + occurencesOfElement++; + } + } + return occurencesOfElement < maxNumberOfDuplications; + } + + + public boolean elementOccursExactNumberGiven(int elementBeingExamined, int exactNumberOfDuplications) { + int occurencesOfElement = 0; + for (int value : this.array) { + if (value == elementBeingExamined) { + occurencesOfElement++; + } + } + return occurencesOfElement != exactNumberOfDuplications; + } + + @Override + public Integer[] removeDuplicates(int maxNumberOfDuplications) { + Integer[] finalArray = new Integer[this.array.length]; + int iterator = 0; + for (int value : this.array) { + if (elementOccursLessTimesThanMaxThreshhold(value, maxNumberOfDuplications)) { + finalArray[iterator] = value; + iterator++; + System.out.println(value); + } + } + int countOfNotNullElements = 0; + for (Integer value : finalArray) { + if (value != null) { + countOfNotNullElements++; + } + } + System.out.println("NOT NULL ELEMNTS " + countOfNotNullElements); + Integer[] finalfinalArray = new Integer[countOfNotNullElements]; + for (int i = 0; i < countOfNotNullElements; i++) { + finalfinalArray[i] = finalArray[i]; + } + return finalfinalArray; + } + + + @Override + public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { + Integer[] finalArray = new Integer[this.array.length]; + int iterator = 0; + for (int value : this.array) { + if (elementOccursExactNumberGiven(value, exactNumberOfDuplications)) { + finalArray[iterator] = value; + iterator++; + System.out.println(value); + } + } + int countOfNotNullElements = 0; + for (Integer value : finalArray) { + if (value != null) { + countOfNotNullElements++; + } + } + System.out.println("NOT NULL ELEMNTS " + countOfNotNullElements); + Integer[] finalfinalArray = new Integer[countOfNotNullElements]; + for (int i = 0; i < countOfNotNullElements; i++) { + finalfinalArray[i] = finalArray[i]; + } + return finalfinalArray; + } +} \ 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 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 b6eb8589dd506444889ac0fe57f6ebac5ccc75c1 Mon Sep 17 00:00:00 2001 From: April Rivera Date: Sun, 11 Feb 2018 20:18:48 -0500 Subject: [PATCH 2/2] adding string, i know it looks ugly and redundant : ( --- .../looplabs/StringDuplicateDeleter.java | 66 ++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index b3d9914..a74eb5c 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -9,13 +9,75 @@ public StringDuplicateDeleter(String[] intArray) { super(intArray); } + public boolean elementOccursLessTimesThanMaxThreshhold(String elementBeingExamined, int maxNumberOfDuplications) { + int occurencesOfElement = 0; + for (String value : this.array) { + if (value.equals(elementBeingExamined)) { + occurencesOfElement++; + } + } + return occurencesOfElement < maxNumberOfDuplications; + } + + + public boolean elementOccursExactNumberGiven(String elementBeingExamined, int exactNumberOfDuplications) { + int occurencesOfElement = 0; + for (String value : this.array) { + if (value.equals(elementBeingExamined)) { + occurencesOfElement++; + } + } + return occurencesOfElement != exactNumberOfDuplications; + } + + @Override public String[] removeDuplicates(int maxNumberOfDuplications) { - return new String[0]; + String[] finalArray = new String[this.array.length]; + int iterator = 0; + for (String value : this.array) { + if (elementOccursLessTimesThanMaxThreshhold(value, maxNumberOfDuplications)) { + finalArray[iterator] = value; + iterator++; + System.out.println(value); + } + } + int countOfNotNullElements = 0; + for (String value : finalArray) { + if (value != null) { + countOfNotNullElements++; + } + } + System.out.println("NOT NULL ELEMNTS " + countOfNotNullElements); + String[] finalfinalArray = new String[countOfNotNullElements]; + for (int i = 0; i < countOfNotNullElements; i++) { + finalfinalArray[i] = finalArray[i]; + } + return finalfinalArray; } @Override public String[] removeDuplicatesExactly(int exactNumberOfDuplications) { - return new String[0]; + String[] finalArray = new String[this.array.length]; + int iterator = 0; + for (String value : this.array) { + if (elementOccursExactNumberGiven(value, exactNumberOfDuplications)) { + finalArray[iterator] = value; + iterator++; + System.out.println(value); + } + } + int countOfNotNullElements = 0; + for (String value : finalArray) { + if (value != null) { + countOfNotNullElements++; + } + } + System.out.println("NOT NULL ELEMNTS " + countOfNotNullElements); + String[] finalfinalArray = new String[countOfNotNullElements]; + for (int i = 0; i < countOfNotNullElements; i++) { + finalfinalArray[i] = finalArray[i]; + } + return finalfinalArray; } }