目录
//不使用 Lambda 表达式的写法
new Thread(
//以下是匿名内部类的实现
new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类启动线程。。。");
}
}).start();
// 使用 Lambda 表达式进行简化
new Thread(() -> {
System.out.println("匿名内部类启动线程。。。");
}).start();
// 最简版,因为方法体中只有一行代码,可以省略掉大括号和语句后面的分号
new Thread(() -> System.out.println("匿名内部类启动线程。。。")).start();
List<Integer> list = new ArrayList<>();
//不使用 Lambda 表达式的写法
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// 升序排列
return o1 - o2;
}
});
// 使用 Lambda 表达式进行简化
Collections.sort(list, (Integer o1, Integer o2) -> {
return o1 - o2;
});
/*最简版,因为形参的类型可以进行推断,所以形参类型可以省略,
方法体中只有一行代码,可以省略掉大括号和语句后面的分号*/
Collections.sort(list, (o1, o2) -> o1 - o2);
//指定文件夹
File file = new File("D:\\bbb");
if(!file.exists()){
//如果文件夹不存在则进行创建
file.mkdir();
//给文件夹中添加新的文件,getAbsolutePath 通过绝对路径
new File(file.getAbsolutePath()+"a.Java").createNewFile();
//getPath 通过相对路径,创建文件
new File(file.getPath()+"b.Java").createNewFile();
}
//查找文件夹中的符合要求的文件
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".Java");
}
});
System.out.println(files.length);
for (File f : files) {
System.out.println(f.getName());
}
// 使用 Lambda 表达式进行简化
file.listFiles((p) -> {
return p.getName().endsWith(".Java");
});
//最简版,只有一个参数不需要 ()
file.listFiles(p -> p.getName().endsWith(".Java"));