Lambada表达式

概念:函数式接口,使用紧凑的语法结构,表达式有,号分隔的参数和->组成的表达式

 

排序和遍历

List<User> userList = new ArrayList<User>();
        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() {
    }
}

 

公共的函数式接口--函数式接口中的方法(作用:标识传几个参数,返回值是啥)

函数式接口              函数描述符    原始类型特化
Predicate< T >        T->boolean    IntPredicate,LongPredicate, DoublePredicate
Consumer< T >         T->void       IntConsumer,LongConsumer, DoubleConsumer
Function< T,R >       T->R         IntFunction< R >,IntToDoubleFunction,IntToLongFunction,LongFunction< R >,LongToDoubleFunction,LongToIntFunction,DoubleFunction< R >,ToIntFunction< T >,ToDoubleFunction< T >,ToLongFunction< T >
Supplier< T >         ()->T         BooleanSupplier,IntSupplier, LongSupplier,DoubleSupplier
UnaryOperator< T >    T->T          IntUnaryOperator,LongUnaryOperator,DoubleUnaryOperator
BinaryOperator< T >   (T,T)->T      IntBinaryOperator,LongBinaryOperator,DoubleBinaryOperator
BiPredicate< L,R >    (L,R)->boolean     
BiConsumer< T,U >     (T,U)->void    ObjIntConsumer< T >,ObjLongConsumer< T >,ObjDoubleConsumer< T >
BiFunction< T,U,R >   (T,U)->R       ToIntBiFunction< T,U >,ToLongBiFunction< T,U >,ToDoubleBiFunction< T,U >

 

posted on 2022-02-11 11:30  周公  阅读(87)  评论(0编辑  收藏  举报

导航