如何在java中查找平均表单ArrayList
我有一个如何在java中查找平均表单ArrayList,java,arraylist,Java,Arraylist,我有一个ArrayList,我在存储时间、出价、出价。我无法找到内环中元素1-5,2-6,3-7的平均值 以下是代码(rs是一个DB结果迭代器): List graphData=new ArrayList(); while(rs.next()){ i++; 如果(i>6){ graphData.add(rs.getString(“TIME”)); graphData.add(df.format(rs.getFloat(“BID”)); graphData.add(df.format(rs.get
ArrayList
,我在存储时间、出价、出价。我无法找到内环中元素1-5,2-6,3-7的平均值
以下是代码(rs是一个DB结果迭代器):
List graphData=new ArrayList();
while(rs.next()){
i++;
如果(i>6){
graphData.add(rs.getString(“TIME”));
graphData.add(df.format(rs.getFloat(“BID”));
graphData.add(df.format(rs.getFloat(“ASK”));
对于(int arr=i-5;arr而言,第一个问题是只有在i>6
时才将值添加到列表中。如果,则列表的修改应在之外
然后,arr
计数器有一个问题:它增加了3,因为您只想添加ASK元素,但是循环在到达i
时停止。它应该是i*3
。此外,如果i
从0开始,您可以从i==5
开始,而不是从7
开始(在代码中看不到)
List graphData=new ArrayList();
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”));
如果(i>=5){
双和,平均值=0;
对于(int arr=i*3-13;arr为什么不使用DBMS来计算平均值?(也许SQLite不会被称为DBMS,但肯定有avg()函数。我必须使用SQLite做许多其他事情,但同时我必须找到avrage。这就是我使用列表的原因。您可能会发现另一种更容易阅读的可能性是:for(int arr=i-5;arr
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 );
}
}
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 );
}
}