java8 forEach结合Lambda表达式遍历 List操作
时间:2021-03-04 13:49:25|栏目:JAVA代码|点击: 次
我就废话不多说了,大家还是直接看代码吧~
@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的区别
看 一段代码:
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());
});
输出结果:
java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[]
再看map操作符
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);
输出结果:
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操作的是原集合,返回的还是原集合
栏 目:JAVA代码
下一篇:Spring Boot使用Druid进行维度的统计和监控
本文标题:java8 forEach结合Lambda表达式遍历 List操作
本文地址:http://www.codeinn.net/misctech/73763.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




