java8 -list


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
*/

}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值