Skip to content

Commit 40fcfe4

Browse files
committed
add java8 foreach
1 parent 3c36972 commit 40fcfe4

2 files changed

Lines changed: 93 additions & 1 deletion

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jb is `java book`,这里记录了一些我的技术摘要,本项目的目的
2727

2828
1. [Java8简明教程](java8/java8-guide.md)
2929
2. Java8 Lambda
30-
3. Java8 Foreach
30+
3. [Java8 Foreach](java8/foreach.md)
3131
4. Java8 Stream
3232

3333
## Hexo搭建博客

java8/foreach.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# java8 foreach
2+
3+
在这篇文章中我将向你演示如何使用Java8中的`foreach`操作`List``Map`
4+
5+
### 1. Foreach操作Map
6+
1.1 正常方式遍历Map
7+
```java
8+
Map<String, Integer> items = new HashMap<>();
9+
items.put("A", 10);
10+
items.put("B", 20);
11+
items.put("C", 30);
12+
items.put("D", 40);
13+
items.put("E", 50);
14+
items.put("F", 60);
15+
16+
for (Map.Entry<String, Integer> entry : items.entrySet()) {
17+
System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
18+
}
19+
```
20+
21+
<!--more-->
22+
23+
1.2 使用Java8的`foreach`+`lambda`表达式遍历Map
24+
```java
25+
Map<String, Integer> items = new HashMap<>();
26+
items.put("A", 10);
27+
items.put("B", 20);
28+
items.put("C", 30);
29+
items.put("D", 40);
30+
items.put("E", 50);
31+
items.put("F", 60);
32+
33+
items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v));
34+
35+
items.forEach((k,v)->{
36+
System.out.println("Item : " + k + " Count : " + v);
37+
if("E".equals(k)){
38+
System.out.println("Hello E");
39+
}
40+
});
41+
```
42+
43+
###2. Foreach操作List
44+
2.1 普通方式循环List
45+
```java
46+
List<String> items = new ArrayList<>();
47+
items.add("A");
48+
items.add("B");
49+
items.add("C");
50+
items.add("D");
51+
items.add("E");
52+
53+
for(String item : items){
54+
System.out.println(item);
55+
}
56+
```
57+
2.2 在Java8中使用`foreach`+`lambda`表达式遍历List
58+
```java
59+
List<String> items = new ArrayList<>();
60+
items.add("A");
61+
items.add("B");
62+
items.add("C");
63+
items.add("D");
64+
items.add("E");
65+
66+
//lambda
67+
//Output : A,B,C,D,E
68+
items.forEach(item->System.out.println(item));
69+
70+
//Output : C
71+
items.forEach(item->{
72+
if("C".equals(item)){
73+
System.out.println(item);
74+
}
75+
});
76+
77+
//method reference
78+
//Output : A,B,C,D,E
79+
items.forEach(System.out::println);
80+
81+
//Steam and filter
82+
//Output : B
83+
items.stream()
84+
.filter(s->s.contains("B"))
85+
.forEach(System.out::println);
86+
```
87+
88+
参考资料:
89+
1. [Java 8 Iterable forEach JavaDoc](https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html#forEach-java.util.function.Consumer-)
90+
2. [Java 8 forEach JavaDoc](https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#forEach-java.util.function.BiConsumer-)
91+
92+
欢迎star开源web框架Blade:[http://github.com/biezhi/blade](http://github.com/biezhi/blade)

0 commit comments

Comments
 (0)