Also wenn ich ein Name
Objekt und haben eine ArrayList
vom Typ Name
(names
), und ich möchte wissen, ob meine Liste der Namen enthält ein gegebenes Name
Objekt (n
), konnte ich es zwei tun Wege:Java enthält vs AnyMatch Verhalten
boolean exists = names.contains(n);
oder
boolean exists - names.stream().anyMatch(x -> x.equals(n));
ich erwäge, wenn diese zwei gleich verhalten würde und dachte dann über das, was passiert, wenn nzugewiesen wurde?
Für enthält, wie ich verstehe, wenn das Argument null
ist, dann gibt es true
zurück, wenn die Liste null
enthält. Wie würde ich dies erreichen anyMatch
- wäre es mit Objects.equals(x, n)
?
Wenn das funktioniert, welcher Ansatz ist effizienter - ist es anyMatch
wie es Faulheit und Parallelität nutzen kann?
Was ist 'name' Typ? – Tunaki
Wenn 'Namen' tatsächlich eine' ArrayList' ist, würde ich vermuten, dass die Leistung ähnlich wäre. Aber wenn es so etwas wie ein 'HashSet' ist, dann wäre ein' contains'-Aufruf mit ziemlicher Sicherheit effizienter (da er nicht tatsächlich die Elemente durchlaufen muss). –
@JoachimSauer Er * sagte *, dass es eine 'ArrayList' ist. Es ist zumindest vernünftig anzunehmen, dass dies wahr ist. – Marco13