Ist ArrayList.size () - Methode zwischengespeichert?

Frage ich mich, ist das size() Methode, die Sie aufrufen können auf eine bestehende ArrayList<T> zwischengespeichert?
Oder ist es besser in performance-kritischen code, dass ich einfach speichern size() in einem lokalen int?

Ich würde erwarten, dass es in der Tat zwischengespeichert, wenn Sie nicht das hinzufügen/entfernen von Elementen zwischen den anrufen zu size().

Habe ich Recht?

update

Ich spreche nicht von inlining oder solche Dinge. Ich will nur wissen ob die Methode size() selbst speichert den Wert intern, oder dass es dynamisch berechnet jedes mal, wenn Sie aufgerufen.

  • Es ist ein schnelles rufen Sie für ArrayList, aber speichern Sie das Ergebnis in die lokale variable, wenn Sie es verwenden, wie ein test der Bedingung in jeder loop-iteration.
  • können Sie bitte klären Sie die Frage. Es scheint, dass einige Leute interpretieren dies als "does size() führen Sie eine Berechnung oder ist es trivial return ein Feld" vs. "werden mehrere Aufrufe size() ersetzt werden, mit einem einzigen Aufruf von size() mit den nachfolgenden Anrufungen ersetzt durch eine lokale variable, in die das Vorherige Ergebnis wurde gespeichert". Ich habe interpretiert, als die letzteren, während andere interpretiert haben als die ersteren. Bitte stellen Sie das klar.
  • Vielen Dank für die Klarstellung.
InformationsquelleAutor Peterdk | 2010-05-18
Schreibe einen Kommentar