blob: 0d8ac8b3116abe2d79123ffa03d032b28cc39d03 [file] [log] [blame]
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
class Main {
public static void main(String...args){
int[] array = new int[]{1,2,3,4,5,5,6};
System.out.println(getMode(array));
}
private static Map.Entry<Integer, Long> getMode(int... src){
return Arrays.stream(src)
.mapToObj(Integer::valueOf)
.collect(groupingBy(i -> i, counting()))
.entrySet()
.stream()
.max((e1, e2) -> e1.getValue().compareTo(e2.getValue()))
.flatMap(e -> Optional.of
(new AbstractMap.SimpleImmutableEntry<>(Integer.valueOf(e.getKey().intValue()), Long.valueOf(e.getValue().longValue()))))
.get();
}
}
class Main1 {
private static Kl<Integer> getMode(Optional<Map.Entry<Integer, Long>> max){
return max
.flatMap(e -> {
return Optional.of(Kl.factory(e.getKey()));
}).get();
}
static class Kl<A> {
static <A1> Kl<A1> factory(A1 a) {
return null;
}
}
}
class SameCalls<ST> {
<B> List<B> bar(B a) {return null;}
<R> Optional<R> foo(Function<? super ST, Optional<R>> computable) {return null;}
List<String> ff(SameCalls<List<String>> sc){
return sc.foo((x) -> {
return Optional.of(bar(x.get(0)));
}).get();
}
}