使用 java 8 函数风格迭代 List

Java 8 函数式编程也通过 forEach方法解决了这个问题,该方法接受一个 Consumer类型的参数。

顾名思义,Consumer的一个实例将通过它的 accept方法消费给它的东西。

List<String> list = Arrays.asList(new String[]{"One","Two","Three","Four","Five"});

list.forEach(new Consumer<String>() {
	@Override
	public void accept(String name) {
		System.out.println(name);
	}
});

这里,forEach方法将为list中的每个元素调用给定Consumeraccept方法,然后打印出名称。
你可以在 accept 方法中做任何你想做的事情。

使用迭代器迭代列表

List<String> list = Arrays.asList(new String[]{"One","Two","Three","Four","Five"});

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
	System.out.println(iterator.next());
}
如何在java中迭代列表

使用标准 for 循环迭代列表

List<String> list = Arrays.asList(new String[]{"One","Two","Three","Four","Five"});

for (int i = 0; i < list.size(); i++) 
{
	System.out.println(list.get(i));
}
欢迎 on it road

使用增强的 for 循环迭代列表

List<String> list = Arrays.asList(new String[]{"One","Two","Three","Four","Five"});

for (String str : list) {
	System.out.println(str);
}

使用 java 8 lambda 表达式迭代列表

上面的 forEach方法非常有效并且在设计上是正确的,但是它太冗长了。
我们可以使用 lambda 表达式将其修剪为更精简的版本。

List<String> list = Arrays.asList(new String[]{"One","Two","Three","Four","Five"});

list.forEach((final String name) -> System.out.println(name));

lambda 表达式的标准语法期望参数括在括号中,提供的类型信息和逗号分隔。
Java 编译器还提供了一些宽容,可以推断类型。
省去类型方便,省力,噪音小。
这里的类型信息是从集合本身推断出来的,因此我们也可以保留该信息。

// 使用 forEach() - 不包含类型信息
list.forEach(name -> System.out.println(name));
日期:2020-09-17 00:09:22 来源:oir作者:oir