程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

迭代 ArrayList 中的连续对象对

发布于2021-06-29 07:22     阅读(1155)     评论(0)     点赞(23)     收藏(0)


我想从 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,在去年之前,数组的元素。

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

编辑

在这种情况下使用迭代器不会比执行普通循环快,只会使逻辑变得不必要地复杂,并且很容易引入错误。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/236693/2a5889e626dc7dffadb6/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)