首页 > 解决方案 > 循环遍历 ArrayList

问题描述

我正在尝试循环ArrayList获取循环实例的当前值。

public ArrayList<Double> getCurrent(double x) {

    ArrayList<Double> list = new ArrayList<>(); 

    list.add(x);

    ArrayList<Double> list1 = new ArrayList<>(); 

    double sum = 0;
    for (int i = 0; i < list.size(); i++) {
        sum += list.get(i);
        list1.add(sum);
    }

    return list1;

}

这是我的 JSP 文件。请注意,循环会遍历我的ArrayList历史记录,而我想ArrayList从方法中解析为新的值getCurrent(double x)需要ret.

<% for (history his : history) {


    double ret = his.getRet();
    double dep = his.getDeposit();
    String res = his.getRes();

    if (res.equals("Loss")) {
        ret = -dep;
         }

 %>

<h1><%=his.getCurrent(ret) %></h1>

<%} %>

这给了我一个ArrayList由正确的值组成的,但没有添加以前的值。现在ArrayList显示:[30.0, -5.0, 20.0]这是正确的值。但是,我希望它显示:[30, 25, 45]因此这些值与所有以前的值相加。

标签: javajsparraylist

解决方案


我相信您想要做的是将双精度值传递给该函数,然后该函数将返回带有计算值的列表。

每当调用该函数时,根据您的代码new Arraylist is declared every time。因此,那里没有先前的值。如果您希望输出像您提到的那样declare the list outside the function。一旦它在外面,就不需要一次又一次地声明它。它将保留所有先前的值,并且当您进行计算时,它将为您提供预期的输出。


推荐阅读