我正在netbeans上使用Java。在netbeans代码转换的帮助下,我发现下面的代码使用不同的方法显示相同的内容。下面是代码,这里a是一个ArrayList。
//code 1
for(int j=0;j<a.size();j++)
{
System.out.println(a.get(j));
}
//code 2
for (Integer a1 : a) {
System.out.println(a1);
}
//code 3
a.stream().forEach((a1) -> {
System.out.println(a1);
});
//code 4
a.stream().forEach(new Consumer<Integer>() {
@Override
public void accept(Integer x1) {
System.out.println(x1);
}
});对于最后一个代码,将导入'java.util.function.Consumer‘。我想知道这些方法之间是否有显著的区别,如果有,它们是什么?
发布于 2015-03-13 18:27:01
第三和第四段,创建一个流,将有一些额外的开销,所以他们将是一些低效率。
还有第五个选项,可以写得最短:
a.forEach(System.out::println)https://stackoverflow.com/questions/29039321
复制相似问题