Java Netbeans 代码转换
Java Netbeans Code Transformation
我正在使用 Java 开发 netbeans IDE。在 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' 是导入的。
我想知道这些方法之间是否有显着差异,如果有,它们是什么?
创建 Stream 的第 3 和第 4 个片段会产生一些额外的开销,因此它们的效率会稍低一些。
还有第 5 个选项,写起来最短:
a.forEach(System.out::println)
我正在使用 Java 开发 netbeans IDE。在 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' 是导入的。 我想知道这些方法之间是否有显着差异,如果有,它们是什么?
创建 Stream 的第 3 和第 4 个片段会产生一些额外的开销,因此它们的效率会稍低一些。
还有第 5 个选项,写起来最短:
a.forEach(System.out::println)