java8 forEach结合Lambda表达式遍历 List操作

2025-05-29 0 94

我就废话不多说了,大家还是直接看代码吧~

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62
@Test

void testJava8ForeachMap() {

Map<String, Integer> items = new HashMap<>();

items.put("A", 10);

items.put("B", 20);

items.put("C", 30);

items.put("D", 40);

items.put("E", 50);

items.put("F", 60);

//普通方式遍历Map

for(Map.Entry<String, Integer> entry:items.entrySet()){

System.out.println(entry.getKey()+":"+entry.getValue());

}

System.out.println("===================");

//java8 foreach + 拉姆达表达式遍历Map

items.forEach((k, v) -> {

System.out.println(k+":"+v);

});

}

@Test

void testJava8ForeachList() {

List<String> items = new ArrayList<>();

items.add("A");

items.add("B");

items.add("C");

items.add("D");

items.add("E");

//普通写法遍历List

for (String item:items){

System.out.println(item);

}

System.out.println("单独的 forEach 写法==========");

//单独的 forEach 写法

Consumer consumer = new Consumer<String>() {

@Override

public void accept(String s) {

System.out.println(s);

}

};

items.forEach(consumer);

System.out.println("forEach结合Lambda写法==========");

//输出 A,B,C,D,E

items.forEach(s -> {

System.out.println(s);

});

System.out.println("forEach结合Lambda写法,添加过滤条件==========");

//输出 C

items.forEach((s) -> {

if("C".equals(s)){

System.out.println(s);

}

});

}

补充知识:java8 lambda表达式之map和foreach的区别

看 一段代码:

?

1

2

3

4

5

6

7

8

9
List<String> list = new ArrayList<>();

list.add("a");

list.add("c");

list.add("s");

list.add("b");

list.add("f");

list.forEach(s -> {

System.out.println(args.getClass().getTypeName());

});

输出结果:

?

1

2

3

4

5
java.lang.String[]

java.lang.String[]

java.lang.String[]

java.lang.String[]

java.lang.String[]

再看map操作符

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
List<String> list = new ArrayList<>();

list.add("1");

list.add("2");

list.add("3");

list.add("4");

list.add("5");

List<Integer> list1 = list.stream().map(s -> {

Integer a = Integer.parseInt(s);

a = a+1;

System.out.println(a.getClass().getTypeName());

return a;

}).collect(Collectors.toList());

System.out.println(list);

System.out.println(list1);

输出结果:

?

1

2

3

4

5

6

7
java.lang.Integer

java.lang.Integer

java.lang.Integer

java.lang.Integer

java.lang.Integer

[1, 2, 3, 4, 5]

[2, 3, 4, 5, 6]

map对原来的集合操作后返回一个新的集合。此集合和原集合无任何关系,且不会改变原集合的任何东西

foreach操作的是原集合,返回的还是原集合

以上这篇java8 forEach结合Lambda表达式遍历 List操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/xldmx/article/details/107990782

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java8 forEach结合Lambda表达式遍历 List操作 https://www.kuaiidc.com/117572.html

相关文章

发表评论
暂无评论