From 99f212202132d37a8e7bb50679dae23ac019cc44 Mon Sep 17 00:00:00 2001 From: Bo Lee Date: Sun, 11 Feb 2018 21:13:10 -0500 Subject: [PATCH] Completed Lab --- .../looplabs/IntegerDuplicateDeleter.java | 73 ++++++++++++++++++- .../looplabs/StringDuplicateDeleter.java | 57 +++++++++++++++ .../looplabs/IntegerDuplicateDeleterTest.java | 2 + 3 files changed, 131 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..1ec561d 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/IntegerDuplicateDeleter.java @@ -1,8 +1,79 @@ 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); + } + + @Override + + public Integer[] removeDuplicates(int maxNumberOfDuplications) { + String nonDups = ""; + int count = 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])) { + count++; + } + } + if (count < maxNumberOfDuplications) { + nonDups += this.array[i] + " "; + } + count = 0; + } + if (nonDups == "") { + String[] emptyArray = new String[0]; + Integer[] emptyfinalIntArr = new Integer[emptyArray.length]; + for (int m = 0; m < emptyfinalIntArr.length; m++) { + emptyfinalIntArr[m] = Integer.parseInt(emptyArray[m]); + } + return emptyfinalIntArr; + } else { + String[] finalStringArr = nonDups.split(" "); + Integer[] finalIntArr = new Integer[finalStringArr.length]; + for (int m = 0; m < finalIntArr.length; m++) { + finalIntArr[m] = Integer.parseInt(finalStringArr[m]); + } + return finalIntArr; + } + + } + + + @Override + public Integer[] removeDuplicatesExactly(int exactNumberOfDuplications) { + String nonDups = ""; + int count = 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])) { + count++; + } + } + if (count != exactNumberOfDuplications) { + nonDups += this.array[i] + " "; + } + count = 0; + } + + String[] finalStringArr = nonDups.split(" "); + Integer[] finalIntArr = new Integer[finalStringArr.length]; + + for (int m = 0; m < finalIntArr.length; m++) { + finalIntArr[m] = Integer.parseInt(finalStringArr[m]); + } + return finalIntArr; + + + } +} \ 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..bf2c5a6 100644 --- a/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java +++ b/src/main/java/com/zipcodewilmington/looplabs/StringDuplicateDeleter.java @@ -5,4 +5,61 @@ * @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) { + String nonDups = ""; + int count = 0; + + for (int i = 0; i < this.array.length; i++) { + for (int k = 0; k