Uso de métodos Stream en el método stream actual en Java 8

Si desea utilizar secuencias para esto, debe utilizar un objeto que contenga el estado; puede utilizar un recopilador personalizado para esta tarea:

public static void main(String[] args) {
    final int[] arr = {1, 2, 3, 4, 5, 1, 2, 3, 5};
    class MaxCollector {

        int max = Integer.MIN_VALUE;
        int count = 0;

        public void accept(int value) {
            if (max < value) {
                max = value;
                count = 1;
            } else if (max == value) {
                count++;
            }
        }

        public void combine(MaxCollector other) {
            if (max == other.max) {
                count += other.count;
            } else if (max < other.max) {
                max = other.max;
                count = other.count;
            }
        }
    }
    final MaxCollector m = Arrays.stream(arr).collect(
            MaxCollector::new, MaxCollector::accept, MaxCollector::combine);
    System.out.println(m.max + " : " + m.count);
}
Respuesta 1

También puede usar el siguiente código de secuencias (con comentarios en línea) que proporciona el número de ocurrencias (del número máximo):

int maxValueCount = Arrays.stream(myIntArray).
      collect(Collectors.groupingBy(Function.identity(), 
      Collectors.counting())).//group by numbers and counts first
      entrySet().stream().//get Elements from group Map
       max((entry1, entry2) -> 
           (int)(entry1.getValue() - entry2.getValue())).//find max number in map
       get().getValue();//get the count of maximum number
Respuesta: 2

Puede obtener el máximo primero, luego transmitirlo.

int max = Arrays.stream(myIntArray).max().getAsInt(); 

int count = Arrays.stream(myIntArray)
            .filter(i -> i == max)
            .count();
System.out.printf("Count: %d", count);
Respuesta: 3

¿Alguien puede explicar las posibles formas de que se produzcan pérdidas de memoria al usar jsp y servlets en modo de desarrollo? obteniendo una excepción de espacio pergemn después de comenzar a usar jsp y servlets. eclipse....

Estoy usando EGit con eclipse para sincronizar mi entorno de desarrollo con dos computadoras diferentes. Tengo un pequeño problema con el que originalmente creé por proyecto y lo envié a mi repositorio remoto de git (que ...

Tengo un JFrame y JPanel lleno de Jsomethings con un oyente de acción. Cuando el usuario hace clic en un objeto, quiero abrir otro JFrame. Esto es lo que hice: public void actionPerformed (ActionEvent e) {...

Simplemente no entiendo por qué uno debe usar Runtime.addShutdownHook. Si desea hacer una limpieza cuando se cierra el jvm, ¿por qué no simplemente sobrecargar el método de finalización de la clase daemon? Cuál es el ...