Schleife die ersten 20 Elemente eines Arrays in Java

7

Ich habe diese Schleife hier

%Vor%

durchläuft das gesamte Array und findet den Min- und Max-Wert. Sagen wir, ich wollte nur die ersten 20 Elemente durchlaufen, wie mache ich das? Ich habe versucht, eine verschachtelte Schleife unter diese for-Schleife einzufügen und zu sehen, ob ich darauf stoße, aber ich kann nicht.

    
user1816464 04.02.2013, 22:08
quelle

7 Antworten

22

Sie könnten einfach die Bedingung zu der Schleifensteuerungsbedingung hinzufügen:

%Vor%

Dies würde die ersten 20 Elemente überprüfen, wo mehr als 20 im Array sind, aber das gesamte Array, wenn es weniger als 20 Elemente gibt.

    
Andrew Cooper 04.02.2013, 22:11
quelle
6
%Vor%

Dies wird 20 mal durchlaufen, d. h. die ersten zwanzig Elemente des Arrays.

    
user2033853 04.02.2013 22:12
quelle
6

5 Antworten und sie alle haben einen doppelten Vergleich in der Schleife?

Kein Wunder, Java-Programme laufen so langsam ...

Der richtige Weg für eine solche Schleife ist:

%Vor%

verschiebt den Vergleich zwischen Länge und 20 aus der Schleife und bewertet die Schleifenbedingung daher doppelt so schnell. (ignorieren, was das JIT machen könnte oder auch nicht)

Außerdem müssen Sie den größten / kleinsten Wert mit dem ersten Element initialisieren (oder Sie erhalten ungültige Werte, wenn nur ein Element im Array vorhanden ist), und dann können Sie das erste Element in der Schleife überspringen. es sogar "schneller" machen:

%Vor%     
BeniBela 04.02.2013 23:39
quelle
5

Ersetze prices.length durch Math.min(20, prices.length) , was die Länge des Arrays oder 20 ist, je nachdem, was kleiner ist:

for(int i =0; i < Math.min(20, prices.length); i++)

    
amphibient 04.02.2013 22:21
quelle
4

Ändern Sie Ihre for-Schleife in etwa so:

%Vor%     
partlov 04.02.2013 22:11
quelle
3

Wenn Sie nur die ersten 20 Elemente durchlaufen wollen, dann sagen Sie das in der Kopfzeile der for-Schleife.

%Vor%     
Michael 04.02.2013 22:09
quelle
-1

maximaler Wert ist richtig, um ein Minimum zu erhalten ist einfach make max = min dann arbeite wie dann

%Vor%     
Ali Jammal 16.01.2016 22:30
quelle

Tags und Links