jdk8的Stream流快速使用

本文介绍了Java StreamAPI的使用,包括filter、distinct、limit、skip、map和sorted等操作,展示了如何通过StreamAPI对集合数据进行过滤、去重、截取、转换和排序等高效处理。示例代码详细解释了每个方法的功能,并提供了实际应用的例子。
摘要由CSDN通过智能技术生成

不多bb就告诉大家这个东西干嘛用的,然后就开始用:
Stream API对集合数据进行操作,就类似于使用SQL执行的数据年近询。也可以使用Stream API来并行执行操作。简言之,Stream API提供了一种高效且易于使用的处理数据的方式。

这是过程:在这里插入图片描述
以下是常用方法(图是扣的,侵删:
在这里插入图片描述

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

public class Lambda {
    public static void main(String[] args) {
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("这是用的正常方法写的线程");
//            }
//        }).start();
//
//        new Thread(() -> System.out.println("这是使用lambda写出来的线程")).start();
//        Stream流
//       flter过滤
        List<String> flterTest = Arrays.asList("avc","bbc","ccb","asdaasd");
        List<String> b = flterTest.stream()
                .filter(str -> str.contains("b"))
                .collect(Collectors.toList());
//        System.out.println(b);

//        distinct去重
        List<String> distinctTest = Arrays.asList("avc","bbc","ccb","asdaasd","bbc");
        List<String> collect = distinctTest.stream()
                .filter(str -> str.contains("b")) //这一句可以注释掉
                .distinct()
                .collect(Collectors.toList());
//        System.out.println(collect);
//        limit 获取元素中的前几个元素
        List<String> limitTest = Arrays.asList("avc","bbc","ccb","asdaasd","bbc","avc","avc","dsad","dsad","bbc");
        List<String> collect1 = limitTest.stream()
                .limit(7)
                .distinct()//这一句可以注释掉
                .filter(str -> str.contains("a"))//这一句可以注释掉
                .collect(Collectors.toList());
//        System.out.println(collect1);
//        skip获取流中除去前n个元素的其他所有元素
        List<String> skipTest = Arrays.asList("avc","bbc","ccb","asdaasd","bbc","avc","avc","dsad","dsad","bbc");
        List<String> collect2 = skipTest.stream()
                .skip(4)
                .limit(4)//这一句可以注释掉
                .collect(Collectors.toList());
//        System.out.println(collect2);
//        5、map对流中所有元素做统一处理
        List<String> mapTest = Arrays.asList("avbc","bbcd","ccb","asdbaasd","bbc","avbc","avc","dsad","dsad","bbc");
        List<String> b1 = mapTest.stream()
                .map(str -> "zsp" + str)
                .filter(str -> str.contains("b"))
                .limit(5) //这一句可以注释掉
                .distinct()//这一句可以注释掉
                .sorted()//这一句可以注释掉
                .collect(Collectors.toList());
//        System.out.println(b1);
//        6、排序:sorted,默认是升序
        List<String> wordTest = Arrays.asList("avbc","bbcd","ccb","asdbaasd","bbc","avbc","avc","dsad","dsad","bbc");
        wordTest.stream().sorted().collect(Collectors.toList()).forEach(System.out::println);
//        字母排序是按:首字母排序,然后第二个字母排序。。。
        List<Integer> integers = Arrays.asList(21, 3213, 21, 3, 213123, 21, 213);
        integers.stream().sorted().collect(Collectors.toList()).forEach(System.out::println);
//        数字排序是升序,按大小排,小的在前面
        integers.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).forEach(System.out::println);
    //降序,在sorted内加上comparator.reverseOrder
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值