From e94324320192b68ed0c8891702b355255f44501c Mon Sep 17 00:00:00 2001 From: Quatrani Paul Date: Sat, 4 Dec 2021 15:31:06 -0500 Subject: [PATCH 1/3] gave skeleton methods --- .../arrayutility/ArrayUtility.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index ca32e28..c8a8a3a 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,7 +1,27 @@ package com.zipcodewilmington.arrayutility; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Created by leon on 3/6/18. */ -public class ArrayUtility { +public class ArrayUtility { + E[] array; + public ArrayUtility(E[] array){ + this.array = array; + } + + public E[] removeValue(E valueToRemove) { + return (array = Arrays.stream(this.array) + .filter(q-> !q.equals(valueToRemove)) + .toArray([]::new)); + } + + public E countDuplicatesInMerge(E[] arrayToMerge, E valueToEvaluate) { + } + + public E getNumberOfOccurrences(E valueToEvaluate) { + } } From e7946b886105c438f926720ce57fff327de28b3c Mon Sep 17 00:00:00 2001 From: Quatrani Paul Date: Sat, 4 Dec 2021 16:13:25 -0500 Subject: [PATCH 2/3] implemented remove, getNumberOfOccurences, countDuplicatesInMerge --- .../arrayutility/ArrayUtility.java | 27 +++++++++++++++---- .../arrayutility/RemoveValueTest.java | 1 - 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index c8a8a3a..5cdfa45 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -12,16 +12,33 @@ public class ArrayUtility { public ArrayUtility(E[] array){ this.array = array; } - +//is it posssible to do this better without an unchecked cast? + //maybe doing my own array conversion method? public E[] removeValue(E valueToRemove) { - return (array = Arrays.stream(this.array) + return (this.array = (E[]) Arrays.stream(this.array) .filter(q-> !q.equals(valueToRemove)) - .toArray([]::new)); + .toArray()); + } + + public int countDuplicatesInMerge(E[] arrayToMerge, E valueToEvaluate) { + return Math + .toIntExact(Arrays + .stream(arrayToMerge) + .filter(q-> !q.equals(valueToEvaluate)) + .count()); } - public E countDuplicatesInMerge(E[] arrayToMerge, E valueToEvaluate) { + public int getNumberOfOccurrences(E valueToEvaluate) { + return Math + .toIntExact(Arrays + .stream(this.array) + .filter(q-> !q.equals(valueToEvaluate)) + .count()); } - public E getNumberOfOccurrences(E valueToEvaluate) { + public E getMostCommonFromMerge(Integer[] arrayToMerge) { + return Arrays + .stream(this.array) + .max() } } 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; /** From e669a211c1b6a97c9b4e4032f4739c47332070cb Mon Sep 17 00:00:00 2001 From: Quatrani Paul Date: Sat, 4 Dec 2021 17:39:32 -0500 Subject: [PATCH 3/3] passes all tests --- .../arrayutility/ArrayUtility.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java index 5cdfa45..a1a3a67 100644 --- a/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java +++ b/src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java @@ -1,8 +1,8 @@ package com.zipcodewilmington.arrayutility; -import java.util.ArrayList; +import java.lang.reflect.Array; import java.util.Arrays; -import java.util.List; +import java.util.Comparator; /** * Created by leon on 3/6/18. @@ -15,30 +15,33 @@ public ArrayUtility(E[] array){ //is it posssible to do this better without an unchecked cast? //maybe doing my own array conversion method? public E[] removeValue(E valueToRemove) { - return (this.array = (E[]) Arrays.stream(this.array) + return Arrays + .stream(this.array) .filter(q-> !q.equals(valueToRemove)) - .toArray()); + .toArray(q -> Arrays.copyOf(this.array, + this.array.length - getNumberOfOccurrences(valueToRemove))); } - public int countDuplicatesInMerge(E[] arrayToMerge, E valueToEvaluate) { + public Integer countDuplicatesInMerge(E[] arrayToMerge, E valueToEvaluate) { return Math .toIntExact(Arrays .stream(arrayToMerge) - .filter(q-> !q.equals(valueToEvaluate)) - .count()); + .filter(q-> q.equals(valueToEvaluate)) + .count() + getNumberOfOccurrences(valueToEvaluate)); } - public int getNumberOfOccurrences(E valueToEvaluate) { + public Integer getNumberOfOccurrences(E valueToEvaluate) { return Math .toIntExact(Arrays .stream(this.array) - .filter(q-> !q.equals(valueToEvaluate)) + .filter(q-> q.equals(valueToEvaluate)) .count()); } - public E getMostCommonFromMerge(Integer[] arrayToMerge) { + public E getMostCommonFromMerge(E[] arrayToMerge) { return Arrays - .stream(this.array) - .max() + .stream(arrayToMerge) + .max(Comparator.comparing(this::getNumberOfOccurrences)) + .orElse(null); } }