分享
1、算法大厂——字节跳动面试题
2、2000页互联网Java面试题大全
3、高阶必备,算法学习
}
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)
//返回集合中第一个元素
独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
[外链图片转存中…(img-at0yRUEu-1715075618943)]
[外链图片转存中…(img-NIiyqgrh-1715075618943)]
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
[外链图片转存中…(img-MpEWy9fP-1715075618944)]
[外链图片转存中…(img-6o0wvnJc-1715075618944)]