Stream流的这些操作,BAT大厂最爱问的Java核心面试百题详细解析

}

}


**sorted(Comparator)–定制排序**

package com.ysh.review01_Stream;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;

public class StramTest02 {
public static void main(String[] args) {
Employee employee01=new Employee(“yang”,“哈哈”,19);
Employee employee02=new Employee(“yang”,“hui”,49);
Employee employee03=new Employee(“yang”,“hui”,79);
Employee employee04=new Employee(“yang”,“呵呵呵”,79);
Employee employee05=new Employee(“yang”,“hui”,39);
Employee employee06=new Employee(“yang”,“hui”,29);
List list= Arrays.asList(employee01,employee02,employee03,employee04,employee05,employee06);
//创建Stream
Stream stream1 = list.stream();
//对stream1流进行过滤
Stream s = stream1.filter((e) -> {
System.out.println("---------------filter------------");
//过滤掉年龄小于19
return e.getAge() >= 19;
});
//s=s.skip(5);
/*此处可以使用Lambda表达式,即s.sorted((o1,o2)->{
//升序排序,如果年龄相同,则按照姓名的长度排序
if (o1.getAge()==o2.getAge()){
return o1.getName().length()-o2.getName().length();
}
//按照年龄升序排序
return o1.getAge()-o2.getAge();

                      })

     */
    s=s.sorted(new Comparator<Employee>() {
        @Override
        public int compare(Employee o1, Employee o2) {
            //升序排序,如果年龄相同,则按照姓名的长度排序
            if (o1.getAge()==o2.getAge()){
                return o1.getName().length()-o2.getName().length();
            }
            //按照年龄升序排序
            return o1.getAge()-o2.getAge();
        }
    });
    s.forEach((e-> System.out.println(e)));
}

}


## Stream中的map和flatMap方法:

*   流中的每一个数据,当做m
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集: JAVA核心知识点整理-282页 Java与哈希算法.docx Java中Lambda表达式的使用.docx JAVA多线程之线程间的通信方式.docx Java注解详解.docx Java线程池.docx JDK1.8Stream操作.docx JDK8有新特性.docx JVM堆三代.docx JVM的垃圾回收机制详解和调优.docx Spring源码分析之IoC.docx 关于线程和线程池的学习与使用.docx 深入理解JVM垃圾回收机制.docx 深入理解多线程实现的另一种方式Callable.docx 红黑树简介.docx 线程死锁及解决办法.docx 线程锁之重入锁.docx 线程间的通信.docx 虚拟机内存结构和垃圾回收docx.docx 锁分类的了解.docx 集合的扩容机制.png SpringMVC部分.docx Spring部分.docx 第一题.pdf 第七题 谈谈MySQL支持的事务隔离级别 (1).pdf 第三题 对比HashTable HashMap TreeMap有什么不同.pdf 第二题 Exception Error区别.pdf 第五题 如何保证集合是线程安全的.pdf 第八题 Java并发类库提供的线程池有哪几种 分别有什么特点.pdf 第六题 synchronized和ReentLock有什么区别.pdf 第四题 ArrayList LinkedList Vector的区别.pdf docker讲得最清楚.doc Dubbo是什么?能做什么?.doc java 基于TCP协议的Socket编程和通信.doc Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别.doc MySQL千万级的大表要怎么优化(读写分离、水平拆分、垂直拆分).doc redis缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级.doc RPC (Remote Procedure Call)即远程过程调用.doc Spring 面试问题 TOP 50(干货推荐收藏必备).doc springboot常见面试题.doc svn和git的区别及适用场景.doc ZooKeeper.doc 为什么分布式一定要有Redis.doc 分布式、高并发、多线程,到底有什么区别.doc 分布式事务.doc 四款消息队列大比拼.docx 多台web服务器之间共享session.docx 消息中间件Kafka与RabbitMQ.doc 电商项目描述注意点.doc 秒杀业务的量削峰场景如何解决.doc 面试题:Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点.doc
面试中被问到有关stream的问题时,以下是一些可能的问题和答案: 1. 什么是stream)? 是一种用于在程序中读取和写入数据的抽象概念。它可以用于从输入源(如文件、网络连接等)读取数据,或者将数据写入输出目标(如文件、网络连接等)。 2. Java中的stream)分为哪几种类型? Java中的主要分为两种类型:字节(byte stream)和字符(character stream)。字节用于读取和写入二进制数据,而字符用于读取和写入字符数据。 3. 什么是字节(byte stream)? 字节是用于读取和写入二进制数据的。它以字节为单位进行操作,适用于处理图片、音频、视频等二进制文件。 4. 什么是字符(character stream)? 字符是用于读取和写入字符数据的。它以字符为单位进行操作,适用于处理文本文件。 5. Java中常见的字节类有哪些? Java中常见的字节类有:InputStream和OutputStream。它们是抽象类,具体的实现类包括FileInputStream、FileOutputStream、ByteArrayInputStream等。 6. Java中常见的字符类有哪些? Java中常见的字符类有:Reader和Writer。它们是抽象类,具体的实现类包括FileReader、FileWriter、BufferedReader等。 7. 怎样使用来读取文件内容? 可以使用字节或字符来读取文件内容。对于字节,可以使用FileInputStream来读取文件的字节数据;对于字符,可以使用FileReader来读取文件的字符数据。读取文件内容的过程是将文件数据读取到一个缓冲区中,然后从缓冲区中逐步读取数据。 8. 怎样使用来写入文件内容? 可以使用字节或字符来写入文件内容。对于字节,可以使用FileOutputStream来写入字节数据到文件;对于字符,可以使用FileWriter来写入字符数据到文件。写入文件内容的过程是将数据写入到一个缓冲区中,然后将缓冲区中的数据写入到文件中。 这些问题和答案可以帮助你更好地理解和回答与相关面试问题。当然,具体的问题可能会因面试官的要求而有所不同,所以建议在面试前仔细准备并了解相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_61452288

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值