/ / So finden Sie die durchschnittliche Form ArrayList in Java - Java, Arraylist

Wie finde ich die durchschnittliche Form ArrayList in Java - Java, Arraylist

ich habe ein ArrayList und ich speichere Time, BID, ASK. Und ich kann den Durchschnitt von value2 für die Elemente 1-5 in innerer Schleife und wieder 2-6 und noch einmal 3-7 nicht finden.

Hier ist der Code (rs ist ein DB-Ergebnisiterator):

List<String> graphData=new ArrayList<String>();
while(rs.next()){
i++;
if(i>6){
graphData.add(rs.getString("TIME"));
graphData.add(df.format(rs.getFloat("BID")));
graphData.add(df.format(rs.getFloat("ASK")));

for (int arr=i-5; arr<i; arr+=3) {
sum = sum+graphData.get(arr+3));
}
avg = sum/5;
System.out.println(avg );
}
}

Antworten:

0 für die Antwort № 1

Das erste Problem ist, dass der Liste nur dann Werte hinzugefügt werden, wenn i>6. Die Änderung der Liste sollte außerhalb der sein if.

Dann gibt es ein Problem mit dem arr counter: es wird um 3 erhöht, weil Sie nur die ASK-Elemente hinzufügen möchten, aber die Schleife stoppt, wenn sie erreicht wird i. Es sollte sein i*3. Sie können auch von i==5 Anstatt von 7, ob i startet um 0 (kann nicht in Ihrem Code sehen).

List<String> graphData=new ArrayList<String>();
int i = 0;
while(rs.next()){
i++;
graphData.add(rs.getString("TIME"));
graphData.add(df.format(rs.getFloat("BID")));
graphData.add(df.format(rs.getFloat("ASK")));

if(i>=5){
double sum, avg = 0;
for (int arr=i*3-13; arr<i*3-1; arr+=3) {
sum = sum+graphData.get(arr));
}
avg = sum/5;
System.out.println(avg );
}
}