From 0d4a7b2a8caf1c1677a836ca59a30a9211e3f59a Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Thu, 14 Nov 2019 20:04:05 -0500 Subject: [PATCH 1/2] first commit --- .../looplabs/IntegerDuplicateDeleter.java | 13 +++++++++++++ .../looplabs/StringDuplicateDeleter.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java index ee550c5..c70f83f 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -5,4 +5,17 @@ * @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 maxNumberOfDuplications) { + return new Integer[0]; + } + + @Override + public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { + return new Integer[0]; + } } 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 5b8ec45ceb24c83d8d806752bba0a98ee2d661ff Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Fri, 15 Nov 2019 00:29:51 -0500 Subject: [PATCH 2/2] lab done --- .../looplabs/IntegerDuplicateDeleter.java | 59 ++++++++++++++++++- .../looplabs/StringDuplicateDeleter.java | 58 +++++++++++++++++- 2 files changed, 113 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java index c70f83f..ee52574 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -1,21 +1,76 @@ package com.zipcodewilmington.looplabs; +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 { + + private Integer[] result; + public IntegerDuplicateDeleter(Integer[] intArray) { + super(intArray); } @Override public Integer[] removeDuplicates(int maxNumberOfDuplications) { - return new Integer[0]; + + int duplicates = 0; + int indexNewAray = 0; + + for(Integer index : array){ + + if(countOccurences(index) >= maxNumberOfDuplications) + duplicates++; + } + + result = new Integer[array.length - duplicates]; + + for(Integer index : array){ + + if(countOccurences(index) < maxNumberOfDuplications) { + result[indexNewAray] = index; + indexNewAray++; + } + } + + return result; } @Override public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { - return new Integer[0]; + int duplicates = 0; + int indexNewAray = 0; + + for(Integer index : array){ + + if(countOccurences(index) == exactNumberOfDuplications) + duplicates++; + } + + result = new Integer[array.length - duplicates]; + + for(Integer index : array){ + + if(countOccurences(index) != exactNumberOfDuplications) { + result[indexNewAray] = index; + indexNewAray++; + } + } + + return result; + } + + public int countOccurences(int index){ + int counter = 0; + + for(Integer number : array) { + if (index == number) + counter++; + } + return counter; } } diff --git a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java index b3d9914..07fdaab 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -5,17 +5,71 @@ * @ATTENTION_TO_STUDENTS You are forbidden from modifying the signature of this class. */ public final class StringDuplicateDeleter extends DuplicateDeleter { + + private String[] result; + public StringDuplicateDeleter(String[] intArray) { + super(intArray); } @Override public String[] removeDuplicates(int maxNumberOfDuplications) { - return new String[0]; + + int duplicates = 0; + int indexNewAray = 0; + + for(String s : array){ + + if(countOccurences(s) >= maxNumberOfDuplications) + duplicates++; + } + + result = new String[array.length - duplicates]; + + for(String s: array){ + + if(countOccurences(s) < maxNumberOfDuplications) { + result[indexNewAray] = s; + indexNewAray++; + } + } + + return result; } @Override public String[] removeDuplicatesExactly(int exactNumberOfDuplications) { - return new String[0]; + + int duplicates = 0; + int indexNewAray = 0; + + for(String s : array){ + + if(countOccurences(s) == exactNumberOfDuplications) + duplicates++; + } + + result = new String[array.length - duplicates]; + + for(String s: array){ + + if(countOccurences(s) != exactNumberOfDuplications) { + result[indexNewAray] = s; + indexNewAray++; + } + } + + return result; + } + + public int countOccurences(String string){ + int counter = 0; + + for(String s : array) { + if (s.equals(string)) + counter++; + } + return counter; } }