【发布时间】:2019-10-09 06:03:16
【问题描述】:
能否告诉我是否还有其他 Java 程序员必须能够阅读的循环表达式?
final List<String> names = Arrays.asList("Alice", "Bob", "Carol", "Dave", "Eve");
System.out.println("Pattern 1:");
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
System.out.println("Pattern 2:");
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("Pattern 3:");
for (String name : names) {
System.out.println(name);
}
System.out.println("Pattern 4:");
names.forEach(new Consumer<String>() {
@Override
public void accept(String name) {
System.out.println(name);
}
});
System.out.println("Pattern 5:");
names.forEach((String name) -> {System.out.println(name);});
System.out.println("Pattern 6:");
names.forEach((String name) -> System.out.println(name));
System.out.println("Pattern 7:");
names.forEach(name -> System.out.println(name));
System.out.println("Pattern 8:");
names.forEach(System.out::println);
System.out.println("Pattern 9:");
names.stream().forEach(System.out::println);
【问题讨论】:
-
也试试递归。这可能会有所帮助:stackoverflow.com/questions/2044033/…
-
模式5、6、7有什么区别?这只是语法糖。您只是在寻找模式吗?
-
@VinayPrajapati 认为 Java 程序员应该知道不同的语法糖,所以我将它们添加为不同的模式。
-
好吧!请记住,当涉及到最佳编码实践和指南时,应该避免大多数这些语法糖,例如总是有一个带有花括号的 if 块。尽管如此,了解所有这些都很好。
-
所有 5、6、7、8 都可以在有或没有
stream()的情况下使用(如 9)。
标签: java