Dav*_*sco 3 java foreach for-loop java-8
有谁知道如何分别以Java 8方式实现以下片段代码,是否有任何流方法可检测forEach中的第一个元素?
List<String> myList = new ArrayList<String>();
myList.add("A");
myList.add("B");
int i = 0;
for (final String value : myList) {
if (i == 0) {
System.out.println("Hey that's the first element");
}
System.out.println(value);
i++;
}
Run Code Online (Sandbox Code Playgroud)
Java8:
myList.stream().forEach(value -> {
// TODO: How to do something special for first element?
System.out.println(value);
});
Run Code Online (Sandbox Code Playgroud)
此外,假设目标是以下(控制台输出):
A Something special
B
C
D
E
F
Run Code Online (Sandbox Code Playgroud)
可以为您工作吗?
myList.stream().findFirst().ifPresent(e -> System.out.println("Special: " + e));
myList.stream().skip(1).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
输出:
Special: A
B
Run Code Online (Sandbox Code Playgroud)
选择:
myList.stream().findFirst().ifPresent(e -> somethingSpecial(e));
myList.stream().forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |