Le code ci-dessous, prend un flux, le trie. S'il y a une limite maximale qui devrait être appliquée, elle l'appliquera.Les flux Java limitent les éléments de la collection en fonction de la condition
if(maxLimit > 0) {
return list.stream().sorted(comparator).limit(maxLimit).collect(Collectors.toList());
} else {
return list.stream().sorted(comparator).collect(Collectors.toList());
}
//maxLimit, list, comparator can be understood in general terms.
Ici, à l'intérieur de if, l'opération de limite est présente et dans else, elle n'est pas présente. Les autres opérations en cours sont identiques.
Est-il possible d'appliquer une limite lorsque maxLimit est supérieur à zéro. Dans le bloc de code présenté ci-dessus, la même logique est répétée, sauf le fonctionnement en limite dans un bloc.
pourrait-il être fait avec Java 9 ' takeWhile() '? Je suppose que la réponse est non, puisque takeWhile fonctionne sur le flux et est apatride ....!? – schneida