迭代 ArrayList 中的连续对象对

2024-02-29

我想从 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(使用前将#替换为@)

迭代 ArrayList 中的连续对象对 的相关文章

随机推荐

  • 在 C++ 中初始化后更改引用

    class mClass public int uu 9 mClass m1 mClass m2 m1 uu 8 m2 uu 7 mClass ppp m1 ppp m2 Is it possible to change reference
  • RemoveDuplicates 函数 - 如何设置多列?

    我正在尝试使用RemoveDuplicates函数使用Excel Interop 但我对如何将列数组传递给它感到困惑 我已经知道我不能把它当作一个简单的int 数组 因为它在运行时给出异常 并且我可以传递一个整数并且它可以工作 但我希望能够
  • NSPredicate - 基于 BOOLEAN 存储值过滤值

    我有一个名为 Entry 的核心数据模型对象 在此我有一个属性 IsFavorite 我想使用 NSPredicate 来过滤 NSFetchedResultsController 的结果 目前 当执行提取时 我收到 EXC BAD ACC
  • Android 软件键盘以编程方式在数字和字母之间切换

    我有一个 EditText输入模式 文本 默认情况下 软件键盘显示为字母顺序 用户必须通过按特定键 如 123 将其切换为数字 Having textinputMode 是否可以默认显示数字键盘而不是字母键盘 我需要字母和数字 但数字的使用
  • 使用 phpmailer 的电子邮件正文中出现感叹号

    我正在使用 phpmailer 在我的网站上发送电子邮件 我的代码工作正常 但有时在电子邮件正文中随机位置包含感叹号 我的代码如下 mail gt SetFrom FROM EMAIL FROM NAME emailid of sender
  • 特殊撇号会破坏 JSON

    7671 gt Sleaford Carre s 是 result 中的一个元素 result json encode result echo result outputs 7671 null 请注意 这不是正常的撇号 单引号 或反勾号 我
  • git gc -- 积极推送到服务器?

    这好像是git gc aggressive确实清理了我的仓库 但是当我这样做时git push一切都已经是最新的了 有没有办法清理服务器 2012 I know that GitHub will run git gc periodicall
  • Android - 可以在多个帐户中发布具有相同密钥库文件的不同应用程序吗? [复制]

    这个问题在这里已经有答案了 我已上传签名apk文件与keystore在客户端Developer Account 现在 我有来自同一客户 具有不同开发人员帐户的另一个应用程序 我可以上传签名吗apk文件具有相同的keystore文件或者我应该
  • Fluent nHibernate 和 asp.net MVC 入门

    我考虑使用 Fluent nhibernate 通过我的 asp net mvc web 应用程序进行数据访问 任何描述如何使用 asp net mvc web 应用程序设置 Fluent nHibernate 的好文章 This seri
  • Laravel 迁移 - 完整性约束违规:1452 无法添加或更新子行:外键约束失败

    我正在尝试对表运行迁移inventories我通过这次迁移创建的 Schema create inventories function Blueprint table table gt increments id table gt inte
  • 使用正则表达式前瞻,egrep

    如果您的文件包含 apples are good apple cider is also good 为什么会egrep apples app file无法接听任何线路 在 MAC 上使用egrep 2 5 1 扩展正则表达式不具有积极的前瞻
  • 实体框架 4.1 InverseProperty 属性

    只是想了解更多RelatedTo属性 我发现它已被替换为ForeignKey and InversePropertyEF 4 1 RC 中的属性 有谁知道有关此属性变得有用的场景的任何有用资源 我应该在导航属性上使用此属性吗 例子 publ
  • 使用 Rails 测试 PayPal

    我需要测试新的 PayPal 与我的应用程序的集成 我在开发环境中使用 PayPal 沙箱 为了测试整个界面 我发现ngrok https ngrok com 可能会解决来自 PayPal 的消息问题 我使用安装了 ngrokapt get
  • 如何在 IBM DB2 中的导出结果中包含列标题

    我试图使用命令从 DB2 中的表中导出数据 我想导出到 csv 文件中 但是列标题不存在 还需要列标题 那么我可以在 sql 查询中添加什么也获取列标题 这在最新的 2019 Db2 11 5 版本和 Db2 Warehouse 本地和云上
  • 电池使用情况 - iOS

    我想在应用程序的状态栏上显示应用程序的电池使用情况 它使用 GPS 因此 GPS 信号和应用程序的电池使用详细信息对于用户了解电池消耗情况很有用 有没有办法获取设备的电池使用情况 并仅显示消耗的电池量my app独自的 在仪器上 它显示随时
  • 带有目标目录的符号链接二进制文件

    我有一个二进制文件 它加载具有相对路径的资源 我想在 usr bin 中放置一个链接 我努力了ln s game directory game usr bin game 它启动了我的二进制文件 但无法加载我的资产 因为它显然找不到文件夹 a
  • 在搜索栏步骤上方添加具有不同字体大小的标签,与搜索栏拇指垂直对齐

    I would like to create a Seekbar above which there will be text label on each Seekbar step what it should look like is s
  • 使用 C# 设置进程“图像名称”和“描述”

    我想尽可能详细地讨论这个问题 这样问题就很容易理解answer able 本质上我需要一种设置方法进程名称 and 流程说明在应用程序上使用 C startup 这是我想要更改的示例 Note 我想用代码设置我自己的 C 应用程序图像和描述
  • 简单数据类型的互斥锁

    我对并发还很陌生 并且在决定如何使用互斥体时遇到困难 目前 它们散布在我的代码中两个线程交互的地方 这种互斥体的使用是否合适 class Foo public void SetMember int n AcquireMutex n n Re
  • 迭代 ArrayList 中的连续对象对

    我想从 ArrayList 获取对象对 以便可以在每个对象的元素之间执行计算 理想情况下 它应该迭代成对的对象 例如 在包含 obj1 obj2 obj3 obj4 的列表中 它应该遍历 obj1 obj2 obj2 obj3 和 obj3