Ich habe die Frage sehr "handwavingly" mit "ja, ist alles perfekt" abgetan, weil ich nicht glaube, dass solche Fragestellungen für
@O2016 gerade von Relevanz sein sollten. Um abschätzen zu können, ob eine Methode nun "perfekt" ist oder nicht, hängt es natürlich von dem Anwendungsfall und den Rahmenbedingungen ab, in welchem man die Klasse/Methode einsetzt. Das Wort "perfekt" ist natürlich sehr schwammig und niemand kann sich darunter etwas vorstellen, bzw. jeder stellt sich darunter etwas anderes vor:
- Läuft die Methode immer mit derselben, deterministischen Laufzeit?
- Alloziiert die Methode irgendwelche Objekte, die zu GC-Spikes führen können?
- Ist die Methode so implementiert, dass sie einfach durch HotSpot per Escape Analysis inlined werden kann?
- Wieviel Speicher wird generell für die Datenstruktur gebraucht?
- Wie ist der Tradeoff zwischen Speicherverwendung und Laufzeit?
- ...
Man kann, außer bei den aller-trivialsten Algorithmen _niemals_ sagen, dass eine Methode nun perfekt ist oder nicht, da es wie gesagt von dem Anwendungsfall und den eigenen Rahmenbedingungen abhängt.
Aber nach wie vor glaube ich nicht, dass das für
@O2016 aktuell auch nur ansatzweise von Relevanz sein sollte, wie die Performancecharakteristiken der JRE-Klassen sind.