多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 中元素迭代的历史 原文:http://zetcode.com/articles/javaiterationhistory/ 在本教程中,我们将研究 Java 中元素迭代的历史。 编程中最常见的任务之一就是迭代数据集合。 本教程说明了随着时间的推移,元素迭代如何随 Java 语言一起发展。 ## `Enumeration` 在 Java 的早期,`Enumeration`用于迭代数据元素。 `Enumeration`接口定义了一些方法,我们可以通过这些方法枚举(一次获得一个元素)对象集合中的元素。 两个主要的集合类是`Vector`和`Hashtable`。 今天,`Enumeration`,`Vector`和`Hashtable`被认为已过时。 但是,它们不被弃用。 `EnumerationEx.java` ```java package com.zetcode; import java.util.Enumeration; import java.util.Vector; public class EnumerationEx { public static void main(String[] args) { Vector items = new Vector(); items.add("coin"); items.add("pen"); items.add("chair"); items.add("lamp"); items.add("cup"); items.add("spoon"); Enumeration itemsEn = items.elements(); while (itemsEn.hasMoreElements()) { System.out.println(itemsEn.nextElement()); } } } ``` 我们有一个向量字符串。 我们使用`Enumeration`遍历向量的元素。 ```java Enumeration itemsEn = items.elements(); ``` `elements()`方法返回向量的`Enumeration`。 ```java while (itemsEn.hasMoreElements()) { System.out.println(itemsEn.nextElement()); } ``` 元素在`while`循环中遍历。 当还有更多元素要提取时,`hasMoreElements()`返回`true`,而在列举所有元素时返回`false`。 ## 迭代器 Java 1.2 引入了标准集合类(`List`,`Set`,`Map`)和`Iterator`。 `Iterator`带来了迭代器设计模式,这是一种常见的行为模式,用于按顺序访问集合对象的元素,而无需了解其基础表示。 `IteratorEx.java` ```java package com.zetcode; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class IteratorEx { public static void main(String[] args) { List<String> items = Arrays.asList("coin", "ball", "lamp", "spoon"); Iterator it = items.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } } ``` 在示例中,我们使用`Iterator`遍历元素列表。 ```java List<String> items = Arrays.asList("coin", "ball", "lamp", "spoon"); ``` 我们使用`Arrays.asList()`方法在一行中定义一个列表。 ```java Iterator it = items.iterator(); ``` 我们使用`iterator()`方法从列表中获得迭代器。 ```java while (it.hasNext()) { System.out.println(it.next()); } ``` 我们在`while`循环中浏览元素列表。 我们使用迭代器的`hasNext()`和`next()`方法。 ## 可迭代对象和增强的`for`循环 Java 5 引入了泛型`Iterable`和增强的`for`循环。 `Iterable`接口允许对象成为增强的`for`循环语句的目标。 `Iterable`是一个对象,其中包含可以迭代的一系列元素。 它具有一种产生`Iterator`的方法。 `EnhancedForLoop.java` ```java package com.zetcode; import java.util.Arrays; import java.util.List; public class EnhancedForLoop { public static void main(String[] args) { List<String> items = Arrays.asList("coin", "ball", "lamp", "spoon"); for (String item: items) { System.out.println(item); } } } ``` 该示例使用增强的`for`循环遍历列表元素。 迭代器的创建以及对`hasNext()`和`next()`方法的调用不是明确的,但它们仍在幕后进行。 ## Java8 `forEach()`方法 `forEach()`方法对`Iterable`的每个元素执行给定的操作,直到所有元素都已处理或该操作引发异常。 `forEach()`方法使用内部迭代器,而先前的方法使用外部迭代器。 `ForEachEx.java` ```java package com.zetcode; import java.util.Arrays; import java.util.List; public class ForEachEx { public static void main(String[] args) { List<String> items = Arrays.asList("coin", "ball", "lamp", "spoon"); items.forEach(System.out::println); } } ``` 在示例中,我们使用`forEach()`方法遍历元素。 在本教程中,我们研究了 Java 中元素迭代的简要历史。 您可能也对以下相关教程感兴趣:[用 Java 过滤列表](/articles/javafilterlist/), [Java `ArrayList`教程](/articles/javaarraylist/), [Opencsv 教程](/articles/opencsv/), [Java 教程](/lang/java/),[用 Java 读取文本](/articles/javareadtext/) 或[用 Java 读取网页](/articles/javareadwebpage/)或 [Google Guava 简介](/articles/guava/)。