package com.ydlclass.feature;

import org.junit.Before;
import org.junit.Test;

import java.util.*;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.IntStream;

public class LambdaTest {
    List<Person> personList = new ArrayList<>();
    List<Integer> simpleList = Arrays.asList(15,22,9,11,33,52,14);
    @Before
    public void initData(){
        personList.add(new Person("张三",3000,23,"男","太原"));
        personList.add(new Person("李四",7000,34,"男","西安"));
        personList.add(new Person("王五",5200,22,"女","西安"));
        personList.add(new Person("小黑",1500,33,"女","上海"));
        personList.add(new Person("狗子",8000,44,"女","北京"));
        personList.add(new Person("铁蛋",6200,36,"女","南京"));
    }
   
    @Test
    public void maxSalaryofPersonTest(){

        //Optional<Person> max = personList.stream().max(new Comparator<Person>() {
        //    @Override
        //    public int compare(Person o1, Person o2) {
        //        return o1.getSalary() - o2.getSalary();
        //    }
        //});
        //max中需要一个比较器,这个比较器需要实现方法
        Optional<Person> max = personList.stream().max(((o1, o2) -> o1.getSalary() - o2.getSalary()));

        //上面可以简化为此处
        Optional<Person> max1 = personList.stream().max((Comparator.comparingInt(Person::getSalary)));
        max1.ifPresent(System.out::println);
        max.ifPresent(System.out::println);
        max1.ifPresent((person -> System.out.println("员工薪资最高的人是:" + person)));
    }

}