Lambda
Lambda 是JDK8新特性 对它的概念不再重复说明,只是对于代码中个别表达式做简单介绍,
lambda表达式就个人理解就是“*没有任何声明的可带入参(可以是java的可变参数)可访问外部
变量(有外部变量的贮存区域,可访问方法引用与访问构造)的可执行的代码块的语法糖*”。
ps:Lambda访问外部变量时 外部变量不可变,此处的不可变是指变量的引用不可变
关于 stream不做过多介绍 ,可以自己查看资料
List 集合的遍历
List<Integer> test = new ArrayList<>();
for (int i = 0; i < 5; i++) {
test.add(i);
}
System.out.println("==========for模式============");
for(int i = 0 ; i < test.size();i++){
System.out.println(test.get(i));
}
System.out.println("==========foreach============");
test.forEach(integer -> System.out.println(integer));
System.out.println("==========stream==============");
test.stream().forEach(System.out::println);
System.out.println("==========配置filter=========");
test.stream().filter(integer -> integer == 0).forEach(System.out::println);
Map 遍历
Map<String, Object> param = new HashMap<>();
param.put("test1", "测试一下");
param.put("test2", "测试两下");
param.forEach((key, value) -> {
System.out.println(key);
System.out.println(value);
});
System.out.println("#########################");
param.keySet().stream().filter(key -> key.equalsIgnoreCase("test1")).forEach(key -> {
System.out.println(key);
});
System.out.println("*************************");
param.entrySet().stream().filter(entry -> entry.getKey().equalsIgnoreCase("test1")).forEach(key -> {
System.out.println(key);
});
System.out.println("=========================");
param.values().stream().filter(value -> value.equals("测试两下")).forEach(System.out::println);