三、Stream流 limit、skip、concat、sorted、mapToInt方法的使用案例

package stream01;

import java.util.ArrayList;
import java.util.stream.Stream;

public class stream03 {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("林青霞");
        list.add("张三");
        list.add("李四");
        list.add("张明明");
        list.add("孙悟空");
        list.add("张无忌");



        //取前3个数据并在控制台输出
        list.stream().limit(3).forEach(System.out::println);
        //跳过3个元素,把剩下的元素在控制台输出
        list.stream().skip(3).forEach(System.out::println);
        //跳过2个元素,并把剩下的元素中前2个在控制台输出
        list.stream().skip(2).limit(2).forEach(System.out::println);



        Stream<String> s1 = list.stream().limit(4);

        Stream<String> s2 = list.stream().skip(2);
        //合并上面的2个流  并把合并后的结果在控制台输出
        Stream.concat(s1,s2).forEach(System.out::println);
        //合并上面的2个流  并把合并后的结果在控制台输出 去掉重复元素
        Stream.concat(s1,s2).distinct().forEach(System.out::println);


        //按照字母顺序把数据在控制台输出
        list.stream().sorted().forEach(System.out::println);
        //按照字符串长度把数据在控制台输出
        list.stream().sorted((s11,s22)->s11.length()-s22.length()).forEach(System.out::println);

        //按照字符串长度把数据在控制台输出,长度一样的按字幕顺序排
        list.stream().sorted((s3,s4)->{
            int num = s3.length()-s4.length();
            int num2 = num==0?s3.compareTo(s4):num;
            return num2;
        }).forEach(System.out::println);





        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("10");
        list2.add("20");
        list2.add("30");
        list2.add("40");
        list2.add("50");
        list2.add("60");
        //将集合中的字符串转换为整数后在控制台输出
        list2.stream().map(s->Integer.parseInt(s)).forEach(System.out::println);
        list2.stream().map(Integer::parseInt).forEach(System.out::println);
        list2.stream().mapToInt(Integer::parseInt).forEach(System.out::println);

        //int sun() 将集合中的字符串转为整数并求和
        int result = list2.stream().mapToInt(Integer::parseInt).sum();
        System.out.println(result);


        //把list集合中的元素打印在控制台
        list.stream().forEach(System.out::println);
        //count()  统计list集合中有几个以张开头的元素
        long count = list.stream().filter(s->s.startsWith("张")).count();
        System.out.println(count);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值