From 0b5fc73b6215f64df4ace8f0d0b7ba3eebb1fe19 Mon Sep 17 00:00:00 2001 From: jgiroso Date: Sat, 24 Jul 2021 23:31:57 -0400 Subject: [PATCH] all tests complete --- .../arrayutility/ArrayUtility.java | 55 ++++++++++++++++++- .../arrayutility/RemoveValueTest.java | 10 ++-- 2 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..7c4a723 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,60 @@ package com.zipcodewilmington.arrayutility; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { +public class ArrayUtility { + + T[] inputArray; + + public ArrayUtility(T[] inputArray) { + this.inputArray = inputArray; + } + + public Integer countDuplicatesInMerge(T[] arrayToMerge, T valueToEvaluate) { + ArrayList input = new ArrayList<>(Arrays.asList(inputArray)); + ArrayList merge = new ArrayList<>(Arrays.asList(arrayToMerge)); + + input.addAll(merge); + return Collections.frequency(input, valueToEvaluate); + } + + public T getMostCommonFromMerge(T[] arrayToMerge) { + ArrayList input = new ArrayList<>(Arrays.asList(inputArray)); + ArrayList merge = new ArrayList<>(Arrays.asList(arrayToMerge)); + T mostCommon = null; + + input.addAll(merge); + Integer highestCount = 0; + + for(T element : input) { + Integer tempCount = Collections.frequency(input, element); + if(tempCount > highestCount) { + highestCount = tempCount; + mostCommon = element; + } + } + return mostCommon; + } + + public Integer getNumberOfOccurrences(T valueToEvaluate) { + ArrayList input = new ArrayList<>(Arrays.asList(inputArray)); + return Collections.frequency(input, valueToEvaluate); + } + + public Object[] removeValue(T valueToRemove) { + ArrayList input = new ArrayList<>(Arrays.asList(inputArray)); + ArrayList newList = new ArrayList<>(); + + for(T element : input) { + if(!element.equals(valueToRemove)) { + newList.add(element); + } + } + return newList.toArray(new Object[0]); + } } diff --git a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java index d464896..add9339 100644 --- a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java +++ b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java @@ -1,6 +1,6 @@ package com.zipcodewilmington.arrayutility; -import com.zipcodewilmington.UnitTestingUtils; +import com.zipcodewilmington.arrayutility.UnitTestingUtils; import org.junit.Test; /** @@ -14,11 +14,11 @@ public void integerTest() { Integer valueToRemove = 7; Integer[] expected = {11, 2, 8, 4, 5, 0, 9, 8}; Integer[] inputArray = {11, 2, valueToRemove, 8, 4, 5, valueToRemove, 0, 9, 8, valueToRemove}; - ArrayUtility arrayUtility = new ArrayUtility(inputArray); + ArrayUtility arrayUtility = new ArrayUtility<>(inputArray); // When - Integer[] actual = arrayUtility.removeValue(valueToRemove); + Object[] actual = arrayUtility.removeValue(valueToRemove); // Then UnitTestingUtils.assertArrayEquality(expected, actual); @@ -34,7 +34,7 @@ public void longTest() { // When - Long[] actual = arrayUtility.removeValue(valueToRemove); + Object[] actual = arrayUtility.removeValue(valueToRemove); // Then UnitTestingUtils.assertArrayEquality(expected, actual); @@ -51,7 +51,7 @@ public void stringTest() { // When - String[] actual = arrayUtility.removeValue(valueToRemove); + Object[] actual = arrayUtility.removeValue(valueToRemove); // Then UnitTestingUtils.assertArrayEquality(expected, actual);