java - 使用 Iterator 遍历 ArrayList 并使用 instanceof 设置对象
问题描述
我有一个对象的 ArrayList 和一个遍历它们的迭代器。我试图在列表中找到 Ant 对象的实例并将其分配给 ant 变量。
while(iterator.hasNext()) {
if(iterator.getNext() instanceof Ant) {
Ant ant = (Ant)iterator.getNext();
}
}
由于 iterator.getNext() 在调用时会递增迭代器,因此上面的代码将 ant 之后的对象分配给 ant 变量。我想知道如何正确地将列表中的 Ant 对象分配给 ant 变量。
解决方案
你调用.getNext()
了两次,所以你实际上是在你检查的对象之后投射对象。
尝试这个:
while(iterator.hasNext()) {
Object obj = iterator.next();
if (obj instanceof Ant) {
Ant ant = (Ant)obj;
}
}
另外需要注意的是,它.next()
不是.getNext()
在迭代器中检索底层对象。
推荐阅读
- java - 将java类与数据库连接
- java - 我添加到程序中的方法未返回所需的结果
- r - “lib64/R/include:没有这样的文件或目录”错误
- android - 在一个广播接收器上设置 2 个警报
- javascript - 在使用 javascript 构建秒表 chrome 扩展时需要帮助
- python-3.x - 在python(networkx)中绘制最大和最小度数
- django - Django频道没有收到消息
- algorithm - 最大和价值
- openssl - 电子中的openssl版本
- apache-kafka - 当一个 Kafka Broker 宕机时,Kafka 生产者失败