【发布时间】:2015-03-02 23:50:05
【问题描述】:
受Adam Bien's weblog 的启发,我想将 Java 7 中的常见迭代替换为 Java 8 中更好的迭代。旧代码如下所示:
void repeatUsingJava7(int times) {
for (int i = 0; i < times; i++) {
doStuff();
doMoreStuff();
doEvenMoreStuff();
}
}
...这不太好。所以我用 Adam Bein 的例子把它替换成了这个:
void repeatUsingJava8(int times) {
IntStream.range(0, times).forEach(
i -> {
doStuff();
doMoreStuff();
doEvenMoreStuff();
}
);
}
...这是朝着正确方向迈出的一步,但并没有使代码更易于阅读,并且还引入了一个不需要的变量i,以及一对额外的花括号。所以现在我想知道是否有其他方法可以编写此代码,这将使其更好、更易于阅读,主要使用 Java 8。
【问题讨论】:
-
我看不出它们有何相似之处:我的问题是关于多次重复操作,而您所指的是关于迭代列表
-
第二种表达代码的方式是不引入“一个不需要的变量i以及一对额外的大括号”。 两个代码片段都有一个变量
i,两个都有相同个大括号。嗯,它们是等价的……