diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..441e9f0 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,54 @@ package com.zipcodewilmington.arrayutility; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { -} +public class ArrayUtility { + T[] inputArray; + + public ArrayUtility(T[] inputArray) { + this.inputArray = inputArray; + } + + public T countDuplicatesInMerge(T[] arrayToMerge, T valueToEvaluate) { + ArrayList jawner = new ArrayList<>(Arrays.asList(inputArray)); + ArrayList merge = new ArrayList<>(Arrays.asList(arrayToMerge)); + jawner.addAll(merge); + Integer result = Collections.frequency(jawner, valueToEvaluate); + return (T) result; + } + + public T[] removeValue(T valueToRemove) { + ArrayList jawner = new ArrayList<>(Arrays.asList(inputArray)); + jawner.removeIf(T -> T.equals(valueToRemove)); + return (T[]) jawner.toArray(); + } + + public int getNumberOfOccurrences(T valueToEvaluate) { + ArrayList jawner = new ArrayList<>(Arrays.asList(inputArray)); + Integer result = Collections.frequency(jawner, valueToEvaluate); + return result; + } + + public T getMostCommonFromMerge(T[] arrayToMerge) { + ArrayList jawner = new ArrayList<>(Arrays.asList(inputArray)); + ArrayList merge = new ArrayList<>(Arrays.asList(arrayToMerge)); + jawner.addAll(merge); + + T mostJawn = null; + int most = Integer.MIN_VALUE; + for (T object : jawner) { + if (getNumberOfOccurrences(object) > most) { + mostJawn = object; + most = getNumberOfOccurrences(object); + } + } + return mostJawn; + } // Thought process here - sorted the array, use Lamda? maybe? to +} // to check for most commong object diff --git a/src/test/java/com/zipcodewilmington/arrayutility/CountDuplicatesInMergeTest.java b/src/test/java/com/zipcodewilmington/arrayutility/CountDuplicatesInMergeTest.java index 2e85559..5250e46 100644 --- a/src/test/java/com/zipcodewilmington/arrayutility/CountDuplicatesInMergeTest.java +++ b/src/test/java/com/zipcodewilmington/arrayutility/CountDuplicatesInMergeTest.java @@ -34,7 +34,7 @@ public void longTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); + Object actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); // Then Assert.assertEquals(expected, actual); @@ -51,7 +51,7 @@ public void stringTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); + Object actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); // Then Assert.assertEquals(expected, actual); @@ -68,7 +68,7 @@ public void objectTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); + Object actual = arrayUtility.countDuplicatesInMerge(arrayToMerge, valueToEvaluate); // Then Assert.assertEquals(expected, actual); diff --git a/src/test/java/com/zipcodewilmington/arrayutility/GetNumberOfOccurrencesTest.java b/src/test/java/com/zipcodewilmington/arrayutility/GetNumberOfOccurrencesTest.java index e9bcc4f..c5a8237 100644 --- a/src/test/java/com/zipcodewilmington/arrayutility/GetNumberOfOccurrencesTest.java +++ b/src/test/java/com/zipcodewilmington/arrayutility/GetNumberOfOccurrencesTest.java @@ -32,7 +32,7 @@ public void longTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); + Object actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); // Then Assert.assertEquals(expected, actual); @@ -47,7 +47,7 @@ public void stringTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); + Object actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); // Then Assert.assertEquals(expected, actual); @@ -62,7 +62,7 @@ public void objectTest() { ArrayUtility arrayUtility = new ArrayUtility(inputArray); // When - Integer actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); + Object actual = arrayUtility.getNumberOfOccurrences(valueToEvaluate); // Then Assert.assertEquals(expected, actual); diff --git a/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java b/src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java index d464896..8604bfd 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; /** @@ -18,7 +18,7 @@ public void integerTest() { // 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);