Java contient un comportement vs anyMatch

Donc, si j'ai un Name objet et ont une ArrayList de type Name (names), et je veux savoir si ma liste de noms contient un Name objet (n), je pourrais le faire de deux façons:

boolean exists = names.contains(n);

ou

boolean exists - names.stream().anyMatch(x -> x.equals(n));

J'ai été d'examiner si ces deux se comportent de la même et ensuite pensé à ce qui se passe si n a été attribué null?

Pour les contient, ce que je comprends, si l'argument est nullpuis il retourne true si la liste contient null. Comment pourrais-je atteindre cet anyMatch - serait-il par l'utilisation de Objects.equals(x, n)?

Si cela fonctionne, l'approche la plus efficace - est-il anyMatch comme il peut prendre avantage de la paresse et de parallélisme?

source d'informationauteur Tranquility