diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..50f368b 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,78 @@ package com.zipcodewilmington.arrayutility; +import com.sun.deploy.util.ArrayUtil; +import com.sun.tools.javac.util.ArrayUtils; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Stream; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { +public class ArrayUtility { + SomeType[] intArray; + public ArrayUtility(SomeType[] intArray){ + this.intArray = intArray; + } + public Integer countDuplicatesInMerge(SomeType[] arrayToMerge, SomeType valueToEvaluate) { + Integer originalCounter = 0; + Integer mergeCounter = 0; + for(SomeType type : intArray){ + if(type == valueToEvaluate) + originalCounter++; + } + for(SomeType type : arrayToMerge){ + if(type == valueToEvaluate) + mergeCounter++; + } + Integer result = originalCounter + mergeCounter; + + return result; + } + + public SomeType getMostCommonFromMerge(SomeType[] arrayToMerge) { + Stream stream = Stream.concat(Arrays.stream(intArray), Arrays.stream(arrayToMerge)); + SomeType[] work = (SomeType[]) stream.toArray(); + SomeType element = null; + int counter = 0; + for (int i = 0; i < work.length; i++) { + SomeType currentType = work[i]; + int currentTypeCount = 0; + for(int j = 0; j < work.length; j++){ + if (work[j] == currentType){ + currentTypeCount++; + } + if(currentTypeCount > counter){ + element = currentType; + counter = currentTypeCount; + } + } + + } + return element; + } + + public Integer getNumberOfOccurrences(SomeType valueToEvaluate) { + int counter = 0; + for (int j = 0; j < intArray.length; j++) { + if(intArray[j] == valueToEvaluate){ + counter++; + } + + } + return counter; + } + + public SomeType[] removeValue(SomeType valueToRemove) { + List list = new ArrayList<>(); + for(SomeType type : intArray){ + if(type != valueToRemove) + list.add(type); + } + SomeType[] result = list.toArray(Arrays.copyOf(intArray,list.size())); + return result; + } } 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; /**