java8中的stream对List的一些操作

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Test {
   
    /**
     * 数据打印
     * @param demos
     * @param list
     */
    public List printData(List demos ,List list) {
        demos = list.stream().map(student -> new Demo(student.getAge(),student.getSex())).collect(Collectors.toList());
        /*demos.forEach(demo ->{
            System.out.println(demo.getAge());
        });*/
        return demos;
    }
    
    /**
     * 打印性别为0的数据
     * @param demos
     */
    public void printSexequal0(List demos) {
        List collect = demos.stream().filter(demo -> demo.getSex() == 0).distinct().collect(Collectors.toList());
        collect.forEach(item ->{
            System.out.println("\n"+item.getAge()+":"+item.getSex());
        });
    }
    
    /**
     * 过滤年龄大于12的信息
     * @param demos
     */
    public void filterAge(List demos) {
        List collect = demos.stream().filter(demo -> Integer.valueOf(demo.getAge())>12).collect(Collectors.toList());
        collect.forEach(demo ->{
            System.out.println(demo.getAge()+":"+demo.getSex());
        });
    }
    
    /**
     * 数据排序
     * @param demos
     */
    public void sort(List demos) {
        List collect = demos.stream().sorted((s1,s2) -> s1.getAge().compareTo(s2.getAge())).collect(Collectors.toList());
        collect.forEach(demo -> {
            System.out.println(demo.getAge());
        });
    }
    
    /**
     * 倒叙
     * @param demos
     */
    public void pour(List demos) {
        ArrayList demoArray = (ArrayList)demos;
        demoArray.sort(Comparator.comparing(Demo::getAge).reversed());
        demoArray.forEach(demo -> {
            System.out.println(demo.getAge());
        });
    }
    
    /**
     * 倒叙2
     * @param demos
     */
    public void pour2(List demos) {
        ArrayList demoArray = (ArrayList)demos;
        Comparator comparator = (h1,h2) -> h1.getAge().compareTo(h2.getAge());
        demoArray.sort(comparator.reversed());
        demoArray.forEach(demo -> {
            System.out.println(demo.getAge());
        });
    }
    
    /**
     * 多条件排序--正序
     * @param demos
     */
    public void moreSort(List demos) {
        demos.sort(Comparator.comparing(Demo::getSex).thenComparing(Demo::getAge));
        demos.forEach(demo ->{
            System.out.println(demo.getSex()+":"+demo.getAge());
        });
    }
    
    /**
     * 多条件倒叙
     * @param demos
     */
    public void morePour(List demos) {
        demos.sort(Comparator.comparing(Demo::getSex).reversed().thenComparing(Demo::getAge));
        demos.forEach(demo ->{
            System.out.println(demo.getSex()+":"+demo.getAge());
        });
    }

    /**
     * 分组
     * @param demos
     */
    public void groupByAge(List demos) {
        Map> collect = demos.stream().collect(Collectors.groupingBy(Demo::getAge));
        collect.forEach((key,value)->{
            value.forEach(demo ->{
                System.out.println(key+":"+demo.getSex());
            });
        });
    }
}

你可能感兴趣的:(java8中的stream对List的一些操作)