diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..6d1f35d 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,82 @@ package com.zipcodewilmington.arrayutility; +import java.util.*; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { +public class ArrayUtility { + + private SomeType[] array; + + public ArrayUtility(SomeType[] array) { + this.array = array; + } + + public List mergeArray(SomeType[] arrayToMerge){ + List mergedArray = new ArrayList<>(); + for (SomeType s : arrayToMerge) { + mergedArray.add(s); + } + for (SomeType s : this.array) { + mergedArray.add(s); + } + return mergedArray; + } + + public Integer countDuplicatesInMerge(SomeType[] arrayToMerge, SomeType valueToEvaluate) { + List mergedArray = mergeArray(arrayToMerge); + int counter = 0; + for (SomeType something: mergedArray) { + if (something.equals(valueToEvaluate)){ + counter++; + } + } + return counter; + } + + public SomeType getMostCommonFromMerge(SomeType[] arrayToMerge) { + List mergedArray = mergeArray(arrayToMerge); + Map myMap = new HashMap<>(); + for (SomeType s : mergedArray) { + if (myMap.containsKey(s)) { + myMap.put(s, myMap.get(s) + 1); + } else { + myMap.put(s, 1); + } + } + int mostCommon = 0; + SomeType theType = null; + for (Map.Entry a: myMap.entrySet()){ + if (a.getValue() > mostCommon){ + mostCommon = a.getValue(); + theType = a.getKey(); + } + } + return theType; + } + + public Integer getNumberOfOccurrences(SomeType valueToEvaluate) { + int tracker = 0; + for (int i = 0; i < array.length; i++) { + if(valueToEvaluate.equals(array[i])) { + tracker++; + } + } + return tracker; + } + + public SomeType[] removeValue(SomeType valueToRemove) { + ArrayList arrayList = new ArrayList<>(); + for (SomeType element : array) { + if (!element.equals(valueToRemove)) { + arrayList.add(element); + } + } + SomeType[] newArray = (SomeType[]) java.lang.reflect.Array.newInstance(array[0].getClass(),array.length); + for (int i = 0; i < arrayList.size(); i++) { + newArray[i] = arrayList.get(i); + } + return newArray; + } } diff --git a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java index d464896..446b71c 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.UnitTestingUtils; import org.junit.Test; /**