java1.8Stream

package test;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Test11 {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10,8);
        //规约操作,按照一定的规律计算
        Integer count2 = list.stream()
                .reduce(0, (x, y) -> x + y);//0是基数,后面是具体操作规律
        System.out.println(count2);//输出63
        System.out.println();
        //筛选,过滤,遍历
        list.stream().filter(x -> x>5).limit(3).forEach(System.out::println);//输出6、7、8
        System.out.println();
        //skip(n) 该流n个元素之后的数据,如果该流元素个数没有n个元素返回null
        list.stream().filter(x -> x>5).skip(1).forEach(System.out::println);//输出7、8、9、10、8
        System.out.println();
        //去重
        list.stream().distinct().forEach(System.out::println);
        System.out.println();

        List<Person> personList = Arrays.asList(new Person("张三","18"),new Person("李四","19"),new Person("王五","15"),new Person("刘六","18"));
        //通过map产生新的流
        personList.stream().map(person -> person.getName()).forEach(System.out::println);//输出张三李四王五
        System.out.println();
        //排序,可以自然排序也可以自定义排序
        personList.stream().sorted((person1,person2) -> {
            if(person1.getAge().equals(person2.getAge())){
                return person1.getName().compareTo(person2.getName());
            }else{
                return person1.getAge().compareTo(person2.getAge());
            }
        }).forEach(System.out::println);
        System.out.println();
        //Collect-将流转换为其他形式,接收一个Collection接口的实现,用于给Stream中元素做汇总的方法
        personList.stream().map(Person :: getAge).collect(Collectors.toList()).forEach(System.out::println);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值