Lambda
1.使用
public void test1(){ Runnable t1 = new Runnable(){ @Override public void run() { System.out.println("跑一下"); } }; t1.run(); Runnable t2 = ()->System.out.println("跑两下"); t2.run(); Consumer<String> c1 = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; c1.accept("消费一下"); Consumer<String> c2 = (String s)-> System.out.println(s); c2.accept("消费两下"); Consumer<String> c3 = (s)-> System.out.println(s); c2.accept("消费三下"); Consumer<String> c4 = s-> System.out.println(s); c2.accept("消费四下"); Comparator<Integer> com1 = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } }; System.out.println("***********比较一下*********"); System.out.println(com1.compare(1, 2)); Comparator<Integer> com2 = (o1,o2)->o1.compareTo(o2); System.out.println(com2.compare(1, 2)); }
@Test public void test2(){ happyTime(400,money-> System.out.println("消费"+money+"元")); } public void happyTime(double money,Consumer<Double> consumer){ consumer.accept(money); }
函数式接口
@Test public void test2(){ happyTime(400,money-> System.out.println("消费"+money+"元")); } public void happyTime(double money,Consumer<Double> consumer){ consumer.accept(money); } @Test public void test3(){ List<String> strings = Arrays.asList("北京", "天津", "南京", "东京"); List<String> filter = filterString(strings, new Predicate<String>() { @Override public boolean test(String s) { if (s.contains("京")) return true; return false; } }); System.out.println(filter); List<String> filter2 = filterString(strings, s->s.contains("京")); System.out.println(filter2); } public List<String> filterString(List<String> list, Predicate<String> pre){ List<String> fileList = new ArrayList<String>(); for(String s:list){ if(pre.test(s)){ fileList.add(s); } } return fileList; }