/ / Як знайти середню форму ArrayList в java - java, arraylist

Як знайти середню форму ArrayList в java-java, арраліст

У мене є ArrayList і я зберігаю Time, BID, ASK. І я не в змозі знайти середнє значення2 для елементів 1-5 у внутрішньому циклі і знову 2-6, і знову 3-7, як мудро.

Ось код (rs - ітератор результатів БД):

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 );
}
}

Відповіді:

0 для відповіді № 1

Перша проблема полягає в тому, що значення додаються до списку лише тоді, коли i>6. Модифікація списку повинна бути поза if.

Тоді виникає проблема з arr лічильник: він збільшується на 3, оскільки ви просто хочете додати елементи ASK, але цикл зупиняється, коли він досягає i. Вона повинна бути i*3. Також ви можете почати з i==5 замість 7, якщо i починається з 0 (не можна побачити у своєму коді).

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 );
}
}