8.2.3 使用Lambda表达式遍历Iterator
Java8
为Iterator
新增了一个forEachRemaining(Consumer action)
方法,该方法所需的参数Consumer
是函数式接口。当程序调用Iterator
的forEachRemaining(Consumer action)
遍历集合元素时,程序会依次将集合元素
传给Consumer
的acept(T t)
方法。
因为forEachRemaining()
方法参数Consumer
是函数式接口,所以可以传给该方法一个Lambda
表达式作为参数。
也可以传入一个匿名内部类作为参数,不过lambda
表达式比匿名内部类代码量比较少.
实例
如下程序示范了使用Lambda
表达式来遍历集合元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import java.util.*; import java.util.function.Consumer;
public class IteratorEach { public static void main(String[] args) { Collection<String> collection = new HashSet<String>(); collection.add("1"); collection.add("2"); collection.add("3"); Iterator<String> iterator = collection.iterator(); iterator.forEachRemaining(str -> System.out.println("Lambda表达式迭代集合元素:" + str)); System.out.println("----------------------------"); iterator = collection.iterator(); iterator.forEachRemaining(new Consumer<String>() { @Override public void accept(String str) { System.out.println("匿名内部类迭代集合元素:" + str); } }); } } ```
|
Lambda表达式迭代集合元素:1
Lambda表达式迭代集合元素:2
Lambda表达式迭代集合元素:3
匿名内部类迭代集合元素:1
匿名内部类迭代集合元素:2
匿名内部类迭代集合元素:3
```
原文链接: 8.2.3 使用Lambda表达式遍历Iterator