Можно через Stream, но без промежуточного collect не обойтись
Stream.of(1, 1, 1, 3, 4, 5, 6, 4, 3, 2, 1, 3, 4, 1, 2, 3, 1, 2)
// Собрать в Map, где ключ - число из массива, значение - кол-во этих чисел в массиве
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
// Отсортировать EntrySet по убыванию значений
.entrySet()
.stream()
.sorted((e1, e2) -> Long.compare(e2.getValue(), e1.getValue()))
// Взять первую (если есть) и вывести в консоль
.findFirst().ifPresent(e -> System.out.println(e.getKey() + " - " + e.getValue()));