使用 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中的每个元素调用给定Consumer的accept方法,然后打印出名称。
你可以在 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());
}
使用标准 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
