To Gather, or not to Gather, that is the question

jta 1

Jérôme

Tech Lead/Architecte

logo onepoint onepoint BDX

@jtama avatar

public class Quizz {
    public static void main(String[] args) {
        Stream<Person> people = getPeople();
        people.stream()
            .map(person -> person.getName())
            .toList();
    }
}

La ligne 5 est exécutée :

10 fois

1 fois

Non

It depends

public class Quizz {
    public static void main(String[] args) {
        Stream<Person> people = getPeople();
        people.stream()
            .map(person -> person.getName());
    }
}

La ligne 5 est exécutée :

10 fois

1 fois

Non

public class Quizz {
    public static void main(String[] args) {
        Stream<Person> people = getPeople();
        people.stream()
            .map(person -> person.getName())
            .count();
    }
}

La ligne 5 est exécutée :

10 fois

1 fois

Non

Rappel

  • Intermédiaires, Finales.

  • L’invocation d’une opération finale est le déclencheur de l’exécution du pipeline.

  • Certaines opérations finales sont des courts-circuits.

  • ♾️

Collector collector;

Collectors collectors;

Collectors.groupingBy(...);

stream.collect(collector);
Gatherer gatherer;

Gatherers;

Gatherers.windowFixed(...);

stream.gather(gatherer);

On part en démo ?

Merci !

Le dépôt github :

https://github.com/jtama/to-gather-or-not-to-gather

Feedback :

LINK TO OPENFEEDBACK