java - Java 中的迭代器

标签 java collections iterator

什么是迭代器和集合? 这两者有什么关系吗?

// the interface definition
Interface Iterator {
    boolean hasNext();
    Object next(); // note "one-way" traffic
    void remove();
}

// an example
public static void main (String[] args){
    ArrayList cars = new ArrayList();

    for (int i = 0; i < 12; i++)
        cars.add (new Car());

    Iterator it = cats.iterator();

    while (it.hasNext())
        System.out.println ((Car)it.next());
}

接口(interface)迭代器是否单独预定义了这些方法名称,还是由用户定义的? 下面这四行实际上说明了什么?

cars.add (new Car());
Iterator it = cats.iterator();
while (it.hasNext())
    System.out.println ((Car)it.next());

谢谢。我正在浏览一本 Collection 的书。

最佳答案

顾名思义,Java 集合是事物的集合。如果您不认识该词,请查字典。

集合有很多种类型。以集合的数学概念为例。您可以将任意事物放入一个集合中,但它永远不会多次包含相同的事物。集合中的事物没有顺序,也就是说你不能说A在B之前。另一种类型的集合是列表。一个列表可以多次包含相同的内容,列表中内容的顺序很重要。

所有这些集合的共同点是它们都包含一些东西,这些东西在 Java 中称为元素。当您想知道某个集合中有哪些内容时,您可以迭代该集合,这只是遍历所有元素的另一个术语。这就是Iterator 的作用。它基本上从集合的开头开始,您可以随时询问是否有下一个元素(hasNext()),如果有,您可以访问该元素(next ()),直到迭代完集合中的所有元素。

关于java - Java 中的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889571/

相关文章:

java - JTable,TableColumnModelListener 检测选定的行

java - 查找二维数组中最接近的非零单元

c# - 是否有通用的 CollectionViewSource 替代方案?

c++ - 如何为双向迭代器定义 operator<?

python - 如何将多个for循环组合成一个生成器python

java - hql查询外连接

java - 更改序列 H2DB 的数据类型

java - 使用 tarsos android 库从麦克风流式传输,添加效果并保存到 wav 文件

collections - Kotlin:在 API 中公开不可变列表

c# - C# 中带有字符串键类型的不区分大小写的字典