Lambada表达式
概念:函数式接口,使用紧凑的语法结构,表达式有,号分隔的参数和->组成的表达式
排序和遍历
ListuserList = new ArrayList (); userList.add(new User(1, "jason", 30, "guanzhou")); userList.add(new User(2, "kevin", 32, "jiangxi")); userList.add(new User(1, "james", 31, "sichuan")); System.out.println("开始:"); userList.forEach(user -> System.out.println(user.toString())); userList.sort((user1, user2) -> { int result = user1.getAge() - user2.getAge(); return result; }); System.out.println("结束:"); userList.forEach(user -> System.out.println(user.toString())); userList.remove(0); System.out.println("结束2:"); userList.forEach(user -> System.out.println(user.toString()));
函数式接口定义:
1. 必须是函数
2. 有且仅有一个非默认或静态方法
3.默认方法和静态方法不会破坏函数式接口的定义
如下是合法的
@FunctionalInterface public interface Animal { void eat(); static void eat2() { } default void defaultMethod() { } }