java8 -list

来源:互联网 发布:淘宝天猫销售额 编辑:程序博客网 时间:2024/05/17 22:22
public class LambdaTest {    public static List<Dog> list;    static {         list=new ArrayList<Dog>();         list.add(new Dog("aa", 2, "aaa"));         list.add(new Dog("bb", 3, "bbb"));         list.add(new Dog("cc", 1, "ccc"));         list.add(new Dog("dd", 4, "ddd"));    }    public static void main(String[] args) {        //list转map        Map<String,Dog> map=list.stream().collect(Collectors.toMap(Dog::getColor, Dog->Dog));        //filter过滤        List<Dog> list2=list.stream().filter( d-> d.getAge() > 2).collect(Collectors.toList());        //sorted排序        List<Dog> list3=list.stream().sorted((d1,d2)->d1.getAge().compareTo(d2.getAge())).collect(Collectors.toList());        //map():元素映射        List<String> list4=list.stream().map( d -> d.getAge() >3 ? "old":"child" ).collect(Collectors.toList());        //distinct去除重复元素        List<Dog> list5=list.stream().distinct().collect(Collectors.toList());        //分组groupingBy        Map<String, List<Dog>> groupBy = list.stream().collect(Collectors.groupingBy(Dog::getColor));        //计算        int sum = list.stream().mapToInt(Dog::getAge).sum();        int sum2=list.stream().map(Dog::getAge).reduce((d1,d2)->(d1+d2)).get();        //最大最小值        Dog d=list.stream().min((param1, param2) ->  param1.getAge() >param2.getAge() ? 1 : -1).get();        Optional<Dog> opd=list.stream().max((param1, param2) ->  param1.getAge() >param2.getAge() ? 1 : -1);        opd.orElseGet(null);        System.out.println( d);    }/*       中间操作:    filter(): 对元素进行过滤    sorted():对元素排序    map():元素映射    distinct():去除重复的元素    map (mapToInt, flatMap 等)filterdistinctsortedpeeklimitskipparallelsequentialunordered    最终操作:    forEach():遍历每个元素。    reduce():把Stream 元素组合起来。例如,字符串拼接,数值的 summinmaxaverage 都是特殊的 reducecollect():返回一个新的集合。    min():找到最小值。    max():找到最大值。     forEachforEachOrderedtoArrayreducecollectminmaxcountanyMatchallMatchnoneMatchfindFirstfindAnyiterator  Short-circuiting:      anyMatchallMatchnoneMatchfindFirstfindAnylimit*/}

这里写图片描述