【发布时间】:2020-06-15 12:27:06
【问题描述】:
我正在尝试遍历 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 历史记录,而我想从方法 getCurrent(double x) 解析为新的 ArrayList 的值采用 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],以便将这些值与所有以前的值相加。
【问题讨论】:
-
如果您完全依赖整数值,那么我会建议使用 int 列表而不是 float。我在下面添加我的答案,希望这会有所帮助
-
谢谢。我不依赖整数值。我期待看到你的回答。提前谢谢你。
-
我不太明白你的方法。为什么要向列表中添加单个值只是为了迭代该列表并将该值添加到 sum 中?我想这不是您想要的,所以我的猜测是在您的方法中(重新)定义
list是您的问题。ArrayList<Double> list = new ArrayList<>();很可能在您的代码中的其他位置。