Java中的迭代器
什么是迭代器和集合? 这两个有关系吗?
// 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 Iterator是否预先定义了这些方法名称或用户定义了哪些方法名称? 下面这四行实际上讲的是什么?
cars.add (new Car()); Iterator it = cats.iterator(); while (it.hasNext()) System.out.println ((Car)it.next());
谢谢。 我正在阅读一本collections的书。
正如名称所示,Java集合是事物的集合。 如果您不知道该单词,请在字典中查找。
collections品种类很多。 以集合的数学概念为例。 你可以把任意东西放在一个集合中,但它永远不会包含同一个东西。 集合中的东西不是有序的,也就是说你不能说A出现在B之前 。 另一种类型的集合是列表。 列表可以多次包含相同的内容,列表中的内容顺序很重要。
所有这些集合的共同点是它们包含的东西,在Java中称为元素 。 当你想知道某个集合中的哪些东西时,你会遍历集合,这只是遍历所有元素的另一个术语。 这就是Iterator
所做的。 它基本上从集合的开头开始,你总是可以询问是否有下一个元素( hasNext()
),如果存在,你可以访问该元素( next()
),直到你迭代了所有元素集合中的元素。
技术上,迭代器和集合没有直接关系。 但是,迭代器主要与集合一起使用,以便对集合中包含的对象进行交互。
迭代器是一种通用且灵活的概念,它允许对象进行交互,而不依赖于它们迭代的实体的确切实现。
迭代器最常用作遍历集合元素的机制。
尽管您展示的具体接口定义是,但该概念并非特定于Java。
请参阅有关Iterator的Wikipedia文章 ,了解它的含义以及如何使用各种语言(包括Java)完成它。
在Java中,它是一个接口,所以你确实可以实现自己的,但是为Java集合库中的集合定义了合理的接口,并为任何Java Collection实现了方法。
collection.iterator()
应该返回一个遍历该集合元素的迭代器。
另请参阅Collection和Iterator的javadoc以获取更多信息。
- 使用Spring的CachingConnectionFactory时关闭会话
- 通过JNI从Applet调用DLL
- JFileChooser:当选择模式为文件和目录时,无法选择桌面
- 线程“main”中的exceptionorg.hibernate.HibernateException:访问stax流时出错
- Smack 4在连接时抛出“SSLHandshakeException:ValidatorException:SunCertPathBuilderException”
- Java System.getProperty()方法识别的标准键的完整列表是什么?
- Java:使用actionlistener在该类的对象上调用另一个类中的函数
- 为什么RMI注册表忽略了java.rmi.server.codebase属性
- 在更新到MacOS Sierra之后,带有Surefire的Maven(TestNG)很慢