java - 迭代器,当 hasNext() 等于 false 时做一些事情

标签 java arraylist iterator

我有一个遍历 ArrayList 的 while 循环,但我想在迭代到达此字符串列表中的最后一个字符串时执行某些操作。

这是怎么做到的?

Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {

            //do stuff here
            }

            do something to list string in list?

最佳答案

在外部作用域中有一个局部变量来记住最后一项:

String last = null;
while (iterator.hasNext()) {
  last = iterator.next();
}

... now last refers to the last item.

如果您想知道自己在循环中的最后一项,那么只需在调用 next() 之后使用 hasNext() 进行检查检索当前迭代的项目。

while (iterator.hasNext()) {
  String s = iterator.next();
  if (!iterator.hasNext()) {
     // here s is guaranteed to refer to the last item
  }
}

关于java - 迭代器,当 hasNext() 等于 false 时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032382/

相关文章:

java - 如何将 byte[] 转换为 ArrayList<CustomObjec>?

java - 如何为jar定义ivy配置仅用于编译而不是运行时

c++ - 如何在不将代码放入头文件的情况下处理任何迭代器?

android - 全局 ArrayList 和 AsyncTask 问题

java - 使用数组列表查找字谜

c++ - Lambda 以迭代器为参数

C++:迭代器 - list.begin() 抛出错误

java - 在虚拟机中安装 java 时出错。(Vagrant 和 Ansible)

java - 如何在 Maven 中表达对 java ee 特性的依赖以过渡到 Java 9?

java - 使用嵌套数组显示和计算质因数或其他运算的数量