首页 > 图灵资讯 > 技术篇>正文
利用 Java Iterator 和 Iterable 提升编程效率
2024-03-12 17:50:05
Java Iterator 与 Iterable 是 Java 集合框架中的两个重要接口为集合元素提供了有效的访问和遍历。本文将深入探讨 Iterator 和 Iterable 概念、使用场景和一些常见的用法可以帮助你充分利用它们来写出高效、优雅的作品 Java 代码。
Iterator 是 Java 集合框架中用于遍历集合元素的接口。它提供了 hasNext() 和 next() 检查集合中是否有更多的元素以及获取下一个元素的两种基本方法。Iterable 接口是 Iterator 它只声明了父接口 iterator() 该方法用于返回新的方法 Iterator 实例。
Iterator 和 Iterable 使用非常简单,只需要使用 Java 的 foreach 语句即可。foreach 句子会自动创建一个 Iterator 集合中的所有元素都不需要手动调用实例和遍历 hasNext() 和 next() 方法。例如:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); for (int number : numbers) { System.out.println(number); }
输出:
List<String> names = Arrays.asList("John", "Mary", "Bob"); Iterator<String> iterator = names.iterator(); while (iterator.hasNext()) { String name = iterator.next(); System.out.println(name); }
- 使用 Iterable 创建自己的可迭代对象:
class MyIterable implements Iterable<Integer> { private List<Integer> numbers; public MyIterable(List<Integer> numbers) { this.numbers = numbers; } @Override public Iterator<Integer> iterator() { return new MyIterator(numbers); } } class MyIterator implements Iterator<Integer> { private List<Integer> numbers; private int index = 0; public MyIterator(List<Integer> numbers) { this.numbers = numbers; } @Override public boolean hasNext() { return index < numbers.size(); } @Override public Integer next() { return numbers.get(index++); } } public class Main { public static void main(String[] args) { MyIterable iterable = new MyIterable(Arrays.asList(1, 2, 3, 4, 5)); for (int number : iterable) { System.out.println(number); } } }
输出:
1 2 3 4 5
Iterator 和 Iterable 是 Java 集合框架中的两个非常重要的接口为集合元素提供了有效的访问和遍历。通过理解 Iterator 和 Iterable 你可以写出高效优雅的概念和用法 Java 代码。