From 4fac127a94da0da7c2d8d97957e27dc0bf14b172 Mon Sep 17 00:00:00 2001 From: Zachary Kitto Date: Mon, 26 Jul 2021 14:19:20 -0400 Subject: [PATCH] all tests passed --- .../arrayutility/ArrayUtility.java | 87 ++++++++++++++++++- .../arrayutility/RemoveValueTest.java | 1 - 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..030db69 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,92 @@ package com.zipcodewilmington.arrayutility; +import java.util.*; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { +public class ArrayUtility { + + SomeType[] array; + + public ArrayUtility(SomeType[] inputArray) { + array = inputArray; + } + + public SomeType[] removeValue(SomeType valueToRemove) { + List arrayAsList = new ArrayList<>(); + for (SomeType element : array) { + if (!element.equals(valueToRemove)) { + arrayAsList.add(element); + } + } + SomeType[] newArray = Arrays.copyOf(array, arrayAsList.size()); + for (int i = 0, j = 0; i < newArray.length; i++, j++) { + if (array[i].equals(valueToRemove)) { + newArray[i] = array[j + 1]; + j++; + } + else if (array[j].equals(valueToRemove)) { + newArray[i] = array[j + 1]; + } + else { + newArray[i] = array[j]; + } + } + return newArray; + } + + public Integer getNumberOfOccurrences(SomeType valueToEvaluate) { + int numberOfOccurences = 0; + for (SomeType element : array) { + if (element.equals(valueToEvaluate)) { + numberOfOccurences++; + } + } + return numberOfOccurences; + } + + public SomeType getMostCommonFromMerge(SomeType[] arrayToMerge) { + //List listOfCommonElements = new ArrayList<>(); + List arrayAsList = new ArrayList<>(Arrays.asList(array)); + for (SomeType element : arrayToMerge) { + arrayAsList.add(element); + } +// int outerBound = 0; +// if (arrayToMerge.length < array.length) { +// outerBound = arrayToMerge.length; +// } +// else { +// outerBound = array.length; +// } +// for (int i = 0; i < outerBound; i++) { +// if (array[i].equals(arrayToMerge[i])) { +// listOfCommonElements.add(array[i]); +// } +// } + int numberOfMostCommonElement = 0; + SomeType mostCommonElement = null; + for (SomeType eachElement : arrayAsList) { + int numberOfOccurences = getNumberOfOccurrences(eachElement); + if (numberOfOccurences > numberOfMostCommonElement) { + mostCommonElement = eachElement; + numberOfMostCommonElement = numberOfOccurences; + } + } + return mostCommonElement; + } + + public Integer countDuplicatesInMerge(SomeType[] arrayToMerge, SomeType valueToEvaluate) { + List arrayAsList = new ArrayList<>(Arrays.asList(array)); + for (SomeType element : arrayToMerge) { + arrayAsList.add(element); + } + int numberOfOccurences = 0; + for (SomeType eachElement : arrayAsList) { + if (eachElement.equals(valueToEvaluate)) { + numberOfOccurences++; + } + } + return numberOfOccurences; + } } diff --git a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java index d464896..1b82da0 100644 --- a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java +++ b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java @@ -1,6 +1,5 @@ package com.zipcodewilmington.arrayutility; -import com.zipcodewilmington.UnitTestingUtils; import org.junit.Test; /**