From 218420ca9c9c744ce225312a44fe03110ff725b7 Mon Sep 17 00:00:00 2001 From: Shawn Date: Mon, 17 Aug 2020 04:59:47 -0700 Subject: Solutions for challenge 074. Both parts, in perl, tcl and java. --- challenge-074/shawn-wagner/java/ch1.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 challenge-074/shawn-wagner/java/ch1.java (limited to 'challenge-074/shawn-wagner/java/ch1.java') diff --git a/challenge-074/shawn-wagner/java/ch1.java b/challenge-074/shawn-wagner/java/ch1.java new file mode 100644 index 0000000000..7d14236d22 --- /dev/null +++ b/challenge-074/shawn-wagner/java/ch1.java @@ -0,0 +1,26 @@ +// Use streams to calculate the count of distinct elements in an array and +// filter out just the first one above the cutoff. + +// I'm particularly proud of this one. + +import java.util.*; +import java.util.stream.*; +import java.util.function.Function; + +class ch1 { + private static void task1(int[] a) { + int cutoff = (int)Math.floor(a.length / 2.0); + int over_cutoff = + Arrays.stream(a).boxed() + .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) + .entrySet().stream() + .filter(entry -> entry.getValue() > cutoff) + .findFirst().map(entry -> entry.getKey()).orElse(-1); + System.out.println(over_cutoff); + } + + public static void main(String[] args) { + task1(new int[] {1, 2, 2, 3, 2, 4, 2}); + task1(new int[] {1, 3, 1, 2, 4, 5}); + } +} -- cgit