这里写自定义目录标题
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑
很多人不知道如何去使用Lambda表达式,下面是我做的总结:
使用方法
/**
* Lambda表达式套用公式
* 方法省略掉,替换为 ->
* 参数只有一个时,可以省略 (),没有参数不能省略()
* 方法体只有一行时,可以省略 {}
* 函数体只有一行,并且有返回值时,如果省略了{},必须省略 return
*/
先来看一下他的简化过程
//属于匿名内部类的写法
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("执行了子线程...");
}
};
//箭头函数
Runnable runnable1 = ()->{
System.out.println("执行了子线程1...");
};
Runnable runnable2 = () -> System.out.println("执行了子线程2...");
//jdk8的lombda表达式是类似es6的新语法 ECMAScript ES5
//lambda表达式的使用
new Thread(() -> System.out.println("执行了子线程2...")).start();
}
使用Comparator 进行排序
public static void main(String[] args) {
//Comparator 跟排序 分组相关
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length()-o1.length();
}
};
Comparator<String> comparator1 = (String o1, String o2)->{
return o1.length()-o1.length();
};
Comparator<String> comparator2 = ( o1, o2)->{
return o1.length()-o1.length();
};
Comparator<String> comparator3 = ( o1, o2)-> o1.length()-o1.length();
}
遍历集合的方式
public static void main(String[] args) {
List<String> students = Arrays.asList("许","李","温","唐");
//遍历集合的方式
for (int i = 0;i<students.size();i++){
System.out.println(students.get(i));
}
//foreach遍历集合方式
for(String name : students){
System.out.println(name);
}
/*jdk8提供的循环方式*/
students.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//简化过后
students.forEach((String s)->{
System.out.println(s);
});
//再度简化
//students.forEach(s->System.out.println(s));
//超级简化版本
students.forEach(System.out::println);
//::代表这Java8中的方法引用
}
遍历map集合
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
//按照之前的方式区遍历map集合
//1.通过for
//2.可以使用迭代器
//3.Entry...
//jdk8
map.forEach(new BiConsumer<String, String>() {
@Override
public void accept(String key, String value) {
System.out.println("Key: "+key+"-----> value:"+value);
}
});
//简化过后
map.forEach((key, value)-> System.out.println("Key: "+key+"-----> value:"+value));
}
这样我们可以看到jdk8给我们提供的这个方法,极大的简略的代码,让代码看起来不那么繁琐。
当然你也可以用这种方式去装逼
毕竟我们是专业的