package com.llf.list;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author llf
* @Date 2019/11/13 14:36
**/
public class Test {
public static void main(String[] args) {
List personList = new ArrayList<>();
Person person1 = new Person(1, "张三", 1, 70, 1010);
Person person2 = new Person(2, "李四", 0, 20, 1010);
Person person3 = new Person(3, "王五", 1, 30, 1010);
Person person4 = new Person(4, "赵达达", 0, 40, 1010);
Person person5 = new Person(5, "钱多多", 0, 50, 1000);
Person person6 = new Person(6, "马鸣", 1, 60, 1000);
personList.add(person1);
personList.add(person2);
personList.add(person3);
personList.add(person4);
personList.add(person5);
personList.add(person6);
// 1、提取某一列(从personList中获取name)
List nameList = personList.stream().map(Person::getName).collect(Collectors.toList());
// 2、提取某一列时去重,distinct()函数
List nameList1 = personList.stream().map(Person::getName).distinct().collect(Collectors.toList());
// 3、排序,按id升续排列(倒叙,改成:(a, b) -> b.getId() - a.getId();)
List sortList = personList.stream().sorted((a, b) -> a.getId() - b.getId()).collect(Collectors.toList());
// 4、过滤,年龄小于60的
List filterList = personList.stream().filter(t -> t.getAge() < 60).collect(Collectors.toList());
// 5、统计,注意double还是int
double sum = personList.stream().mapToDouble(t -> t.getMoney()).sum();
int count = personList.stream().mapToInt(t -> t.getId()).sum();
// 6、分组,根据性别分组,(这里性别用int,0男1女)
Map> map = personList.stream().collect(Collectors.groupingBy(t -> t.getSex()));
}
}