java8新特性——stream笔记(1)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
List list = Arrays.asList(“abc”, “”, “bc”, “efg”, “abcd”,“”, “jkl”);

return list.stream();

}

/**

  • 使用Stream.of()创建流

  • @return

*/

private static Stream createStreamFromValues() {

return Stream.of(“hello”, “alex”, “wangwenjun”, “world”, “stream”);

}

/**

  • 使用Arrays.stream()创建流

  • 可以生成IntStream,LongStream,DoubleStream

  • @return

*/

private static Stream createStreamFromArrays() {

String[] strings = {“hello”, “alex”, “wangwenjun”, “world”, “stream”};

return Arrays.stream(strings);

}

操作

filter : 过滤, 过滤掉不符合条件的数据。

map :转换流类型, 返回一个流,该流包含将给定函数应用于该流元素的结果。

​ 比如一个Stream 类型的流组装后成为Stream的流

limit : 分页。

collect : 将流收集成一个数组。

List menu = Arrays.asList(

new Dish(“pork”, false, 800, “肉类”),

new Dish(“beef”, false, 700, “肉类”),

new Dish(“chicken”, false, 400, “肉类”),

new Dish(“french fries”, true, 530, “鱼肉类”),

new Dish(“rice”, true, 350, “鱼肉类”),

new Dish(“season fruit”, true, 120, “鱼肉类”),

new Dish(“pizza”, true, 550, “鱼肉类”),

new Dish(“prawns”, false, 300, “其他”),

new Dish(“salmon”, false, 450, “其他”));

//创建菜单流

List<Map<String,Integer>> result = menu.stream().filter(d -> {

// 过滤出卡路里大于300的值

System.out.println(“filtering->” d.getName());

return d.getCalories() > 300;

})

.map(d -> {

Map<String, Integer> map = new HashMap<>();

map.put(d.getName(),d.getCalories());

return map;

})

.limit(3)

.collect(toList());

System.out.println(result);

其他操作

List list = Arrays.asList(1, 2, 3, 4, 5, 6, 6, 7, 7, 1);

List result = list.stream().filter(i -> i % 2 == 0).collect(toList());

System.out.println("i -> i % 2 的值 : " result);

result = list.stream().distinct().collect(toList());

System.out.println("去重 : " result);

result = list.stream().skip(2).collect(toList());//跳过前两个数

System.out.println("跳过 : " result);

result = list.stream().limit(4).collect(toList());//取前4个值

System.out.println("分页 : " result);

System.out.println("循环方式一 : ");

list.forEach(i -> System.out.println(i));

System.out.println("循环方式二 : ");

list.forEach((Integer i) -> System.out.println(i));

System.out.println("循环方式三 : ");

list.forEach(System.out::println);

我的面试宝典:一线互联网大厂Java核心面试题库

以下是我个人的一些做法,希望可以给各位提供一些帮助:

整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!

image

283页的Java进阶核心pdf文档

Java部分:Java基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker

image

还有源码相关的阅读学习

image

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
img-QDTVXc5R-1714436589226)]

还有源码相关的阅读学习

[外链图片转存中…(img-7L96vmyn-1714436589227)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值