diff --git a/Maths/Mode.java b/Maths/Mode.java index e2b7f0d9..d43ea16e 100644 --- a/Maths/Mode.java +++ b/Maths/Mode.java @@ -18,6 +18,7 @@ public class Mode { /* Test array of integers */ assert (mode(new int[]{})) == null; assert Arrays.equals(mode(new int[]{5}), new int[]{5}); + assert Arrays.equals(mode(new int[]{1, 2, 3, 4, 5}), new int[]{1, 2, 3, 4, 5}); assert Arrays.equals(mode(new int[]{7, 9, 9, 4, 5, 6, 7, 7, 8}), new int[]{7}); assert Arrays.equals(mode(new int[]{7, 9, 9, 4, 5, 6, 7, 7, 9}), new int[]{7, 9}); @@ -26,17 +27,16 @@ public class Mode { /* * Find the mode of an array of integers * - * @param int[] array of integers - * @return int[] mode of the array + * @param numbers array of integers + * @return mode of the array */ public static int[] mode(int[] numbers) { if(numbers.length == 0) return null; - HashMap count = new HashMap(); + HashMap count = new HashMap<>(); for(int num : numbers) { - if(count.containsKey(num)) { count.put(num, count.get(num) + 1); @@ -50,20 +50,14 @@ public class Mode { } int max = Collections.max(count.values()); - ArrayList modes = new ArrayList(); + ArrayList modes = new ArrayList<>(); for(int num : count.keySet()) { - if(count.get(num) == max) { - modes.add(num); - } - } - return modes.stream().mapToInt(n -> n).toArray(); - } }