我想从 ArrayList 获取对象对,以便可以在每个对象的元素之间执行计算。理想情况下,它应该迭代成对的对象。例如,在包含 {obj1, obj2, obj3, obj4} 的列表中,它应该遍历 {obj1,obj2}、{obj2,obj3} 和 {obj3,obj4}。
到目前为止我所尝试的如下。
public class Sum {
public ArrayList<Double> calculateSum(ArrayList<Iter> iter) {
ListIterator<Iter> it = iter.listIterator();
ArrayList<Double> sums = new ArrayList<>();
while (it.hasNext()) {
Iter it1 = it.next();
Iter it2;
if(it.hasNext()){
it2 = it.next();
} else { break; }
double sum = it1.getValue() + it2.getValue();
sums.add(sum);
}
return sums;
}
}
在这里,它只是迭代为 {obj1,obj2} 和 {obj3,obj4}。我怎样才能解决这个问题?
非常感谢所有帮助。谢谢!
一个非常正常的循环,除了你需要循环到list.size() - 1
, the 在最后之前数组的元素。
public ArrayList<Double> calculateSum(ArrayList<Iter> list) {
ArrayList<Double> sums = new ArrayList<>();
for (int i = 0; i < list.size() - 1; i++) {
double sum = list.get(i).getValue() + list.get(i + 1).getValue();
sums.add(sum);
}
return sums;
}
EDIT
在这种情况下使用迭代器将not比执行普通循环更快,并且只会使逻辑变得不必要的复杂,并且很容易引入错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)