1.替换compartor接口
import java.util.Arrays;
import java.awt.Toolkit;
import java.util.*;
import javax.swing.JOptionPane;
import javax.swing.Timer;
public class LambdaTest {
public static void main(String[] args) {
String[] planets = new String[] { "Mercury","Venus","Earth","Mars",
"Jupiter","Staturn","Uranus","Neptune"};
System.out.println(Arrays.toString(planets));
System.out.println("Sorted in dictionary order");
Arrays.sort(planets);
System.out.println(Arrays.toString(planets));
System.out.println("Sorted by length: ");
Arrays.sort(planets,(first,second) -> first.length() -second.length()); //使用lambda表达式
System.out.println(Arrays.toString(planets));
Timer timer = new Timer(1000,event ->
{System.out.println("The time is " + new Date());
Toolkit.getDefaultToolkit().beep(); /*响铃*/});
timer.start();
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}
}
2.实现遍历map中的键值对
public static void main(String[] args) {
// 使用了泛型创建一个HashMap
Map<String, String> map = new HashMap<String, String>();
//添加键值对
map.put("zhangsan", "15254305006");
map.put("lisi", "15254305068");
map.put("wangwu", "13405786007");
//使用keySet得到所有的键值
Set<String> ketSet = map.keySet();
Iterator<String> iterator = ketSet.iterator(); // 得到迭代器
//使用Lambda方式输出
System.out.println("lambda方式输出:");
iterator.forEachRemaining(element -> {
String value = map.get(element);
System.out.println(element + "->" + value);
});
}
3.充当比较器Comparator
public class Test2 {
static class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public int getAge() {
return age;
}
}
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
persons.add(new Person("张三", 20));
persons.add(new Person("李四", 18));
persons.add(new Person("王五", 22));
System.out.println("排序前s:");
for (Person person : persons) {
System.out.println(person);
}
//使用lambda表达式实现Comparator接口
Collections.sort(persons,(p1,p2)->p1.getAge()-p2.getAge());
System.out.println("排序后:");
for (Person person : persons) {
System.out.println(person);
}
}
}
4.
public class Test2 {
interface IntConsumer {
void accept(int value);
}
public static void repeat(int n, IntConsumer action) {
for (int i = 0; i < n; i++) {
action.accept(i);
}
}
public static void main(String[] args) {
repeat(10, i -> System.out.println("Countdown : " + (9 - i)));
}
}