Différence entre anyMatch et findAny dans java 8


J'ai un Array et je veux effectuer une correspondance sur son élément.

J'ai appris que cela pouvait être fait de deux manières dans java 8:

String[] alphabet = new String[]{"A", "B", "C"};

AnyMatch :

Arrays.stream(alphabet).anyMatch("A"::equalsIgnoreCase)

FindAny :

Arrays.stream(alphabet).filter("a"::equalsIgnoreCase).findAny().orElse("No match found"))

Comme je peux le comprendre, les deux font le même travail.Cependant, je ne pouvais pas trouver lequel préférer?

Quelqu'un Pourrait-veuillez préciser quelle est la différence entre les deux.

Author: Stefan Zobel, 2017-05-25

1 answers

Ils font le même travail en interne, mais leur valeur de retour est différente. Stream#anyMatch() retourne un boolean while Stream#findAny() retourne un objet qui correspond au prédicat.

 11
Author: Dariusz, 2017-05-25 12:13:35