2024年最全Java8之Stream常用操作方式,GitHub标星8k

分享

1、算法大厂——字节跳动面试题

2、2000页互联网Java面试题大全

3、高阶必备,算法学习

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

}



public void setSex(String sex) {

    this.sex = sex;

}



public int getAge() {

    return age;

}



public void setAge(int age) {

    this.age = age;

}



@Override

public String toString() {

    return "Student{" +

            "id=" + id +

            ", name='" + name + '\'' +

            ", sex='" + sex + '\'' +

            ", age=" + age +

            '}';

}

}




[]( )2、初始化数据

---------------------------------------------------------------------



### []( )2.1、初始化集合



![在这里插入图片描述](https://img-blog.csdnimg.cn/5605ced987d34a158a40ce0b6ed8dfd5.png)



public class StreamTest {

List<Student> studentList = Arrays.asList(

        new Student(1,"张三","男",20),

        new Student(2,"李四","男",25),

        new Student(3,"王五","女",18),

        new Student(4,"赵六","女",26)

);

}




[]( )二、Stream常用操作方式

============================================================================



[]( )1、筛选

------------------------------------------------------------------



### []( )1.1、filter



> filter从集合中过滤某些元素,例如查询集合中年龄大于20的数据集合



![在这里插入图片描述](https://img-blog.csdnimg.cn/71f0ceee3b8540b59029d97978d6ab27.png)



    //查询年龄大于20的数据集合

    List<Student> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .collect(Collectors.toList());



### []( )1.2、limit



> limit,和mysql中的limit类似,返回指定数量的数据



![在这里插入图片描述](https://img-blog.csdnimg.cn/2ff4be5363644076ad70d5d6889cc550.png)



    //查询年龄大于20的1个数据

    List<Student> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .limit(1)

            .collect(Collectors.toList());



### []( )1.3、skip



> skip,跳过元素,返回一个跳过前n个元素的集合



![在这里插入图片描述](https://img-blog.csdnimg.cn/9f2318728eef4858b1e549b16ca6590b.png)



    //查询年龄大于20的数据,前一个不要

    List<Student> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .skip(1)

            .collect(Collectors.toList());



### []( )1.4、distinct



> distinct,筛选,通过元素的hashCode()和equals()去除重复元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/f59a74dc8a544cd68bde5faaf0096f64.png)



    //查询年龄大于20的数据,并去重

    List<Student> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .distinct()

            .collect(Collectors.toList());



[]( )2、映射

------------------------------------------------------------------



### []( )2.1、map



> map,将集合元素转换成其他形式返回,接收一个函数作为参数,该函数作用到每一个元素上,并将其映射成一个新的元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/b97ea325ce1744578507367d2ebb157c.png)



    //查询年龄大于20的数据,只获取姓名集合

    List<String> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .map(Student::getName)

            .collect(Collectors.toList());



[]( )3、排序

------------------------------------------------------------------



### []( )3.1、sorted()



> sorted()自然排序



![在这里插入图片描述](https://img-blog.csdnimg.cn/c75edfa37a044c988293a30cfe1b1f6d.png)



//查询年龄大于20的数据,只获取姓名,并排序

    List<String> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .map(Student::getName)

            .sorted()

            .collect(Collectors.toList());



### []( )3.2、sorted(Comparator com)定制排序



> sorted(Comparator com)定制排序,定制输入排序规则



![在这里插入图片描述](https://img-blog.csdnimg.cn/b742625d810d402b9a4de239fc7f45c3.png)



//查询年龄大于20的数据,并根据姓名排序

    List<Student> list = studentList.stream()

            .filter(s -> s.getAge()>20)

            .sorted((e1,e2) -> {

                return e1.getName().compareTo(e2.getName());

            })

            .collect(Collectors.toList());



[]( )4、查找与匹配

---------------------------------------------------------------------



### []( )4.1、allMatch



> allMatch检查是否匹配所有元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/01f9d8ff96384419b449aee4271de523.png)



//判断集合中所有的姓名是否都等于"张三"

    boolean flag = studentList.stream()

            .allMatch((e) -> e.getName().equals("张三"));



### []( )4.2、anyMatch



> anyMatch是否匹配至少一个元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/2023128937474f66b7aa916d2dd93eac.png)



    //判断集合中是否至少有一个姓名等于"张三"

    boolean flag = studentList.stream()

            .anyMatch((e) -> e.getName().equals("张三"));



### []( )4.3、noneMatch



> noneMatch检查是否没有匹配所有元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/d021a731c6244e88865a725826f62c3c.png)



//判断集合中是否没有匹配所有元素姓名等于"张三"

    boolean flag = studentList.stream()

            .noneMatch((e) -> e.getName().equals("张三"));



### []( )4.4、findFirst



> findFirst返回第一个元素



![在这里插入图片描述](https://img-blog.csdnimg.cn/a531015149a4481b9bfe454549e03774.png)



//返回集合中第一个元素

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

image

image

image

image

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

[外链图片转存中…(img-at0yRUEu-1715075618943)]

[外链图片转存中…(img-NIiyqgrh-1715075618943)]

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

[外链图片转存中…(img-MpEWy9fP-1715075618944)]

[外链图片转存中…(img-6o0wvnJc-1715075618944)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值