Sieht so aus, als wäre das der beste Weg, dies zu tun:
String first = strs.iterator().next();
Gute Frage ... Auf den ersten Blick scheint es ein Versehen für die Collection
Benutzeroberfläche zu sein.
Beachten Sie, dass "first" nicht immer das erste zurückgibt, was Sie in die Sammlung aufgenommen haben, und möglicherweise nur für bestellte Sammlungen sinnvoll ist. Vielleicht gibt es deshalb keinen get(item)
Anruf, da die Reihenfolge nicht unbedingt erhalten bleibt.
Es mag ein bisschen verschwenderisch erscheinen, aber es ist vielleicht nicht so schlimm, wie Sie denken. Das Iterator
enthält wirklich nur Indizierungsinformationen in der Sammlung, normalerweise keine Kopie der gesamten Sammlung. Das Aufrufen dieser Methode instanziiert das Iterator
Objekt, aber das ist wirklich der einzige Overhead (nicht wie das Kopieren aller Elemente).
Wenn ArrayList<String>.iterator()
wir uns beispielsweise den von der Methode zurückgegebenen Typ ansehen, sehen wir, dass dies der Fall istArrayList::Itr
. Dies ist eine interne Klasse, die nur direkt auf die Elemente der Liste zugreift, anstatt sie zu kopieren.
Stellen Sie nur sicher, dass Sie die Rückgabe von überprüfen, iterator()
da diese möglicherweise leer ist oder null
von der Implementierung abhängt.