Ich bin ein Anfänger in Java und ich hatte diese Zweifel. Ist es möglich, die Enhanced for-Schleife in Java in einer ArrayList zu verwenden, aber am angegebenen Punkt statt mit ArrayList [0] zu beginnen.
%Vor%Kann ich die erweiterte for-Schleife verwenden und von calc [2] iterieren anstatt von calc [0] ?? Wenn möglich, wie kann ich das tun? In meinem speziellen Fall wäre die Verwendung einer erweiterten for-Schleife besser als eine normale for-Schleife.
Der beste Weg in Java wäre so:
%Vor% subList
ist eine effiziente Ansicht der ursprünglichen Liste, also ist es genau das, was Sie brauchen.
OK, motiviert durch Mikeras Kommentare, habe ich es auf jmh
bewertet. Dies ist der benchmarked Code:
Und das sind die Ergebnisse:
%Vor%erweitert für in der Hauptliste ist so schnell wie eine indizierte Iteration, nachdem die Initialisierungskosten überschritten wurden;
Die Traversierung der Unterliste ist etwas langsamer als die der Hauptliste, und die Iteration ist etwas langsamer als die indizierte Traversierung;
alle Unterschiede sind praktisch vernachlässigbar.
Sie stecken hier mit einer traditionellen Schleife fest ...
%Vor%Nun, es sei denn, Sie sind bereit, ein temporäres subList nur für die Verwendung einer erweiterten for-Schleife, was gut ist, da Unterlisten Ansichten der ursprünglichen Liste sind und kein neues Listenobjekt erstellen:
%Vor% Es sollte beachtet werden, dass die erweiterte for-Schleife für ArrayList
weniger effizient als die Standardindizierung ist. Dies liegt daran, dass wir ein Iterator
-Objekt erstellen und hasNext
und next
in jedem Schritt der Schleife aufrufen müssen, was unnötigen Overhead verursacht.
Aus diesem Grund würde ich die Indexierung auf traditionelle Weise empfehlen, anstatt den sublist
-Ansatz zu verwenden.