自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Java8 Stream 详细总结目录

Java8 Stream(2)创建StreamJava8 Stream(3)遍历 ListJava8 Stream(4)遍历 MapJava8 Stream(5)List集合过滤 filter 和 limitJava8 Stream(6)List集合去重 distinct 和 toSetJava8 Stream(7)List集合排序 多字段排序 Null值排序Java8 Stream(8)List集合转换 map flatMap 区别Java8 Stream(9)List集合统计 求和 最大值

2021-04-30 22:26:12 862 2

原创 Java8 Stream(10)Collectors groupingBy partitioningBy 案例详解

Java8 Stream(11)Collectors 案例详解一、获得对象中某1个属性集合1. toList 获取id的List集合2. toSet 获取gender的Set集合二、List 转 Map1. toMap 将List的值转成 id -> name的Map2. 解决key重复后异常三、求和 最大值 最小值 平均值1. 求age最大的对象2. 求age的平局值3. 求age总和4. 求统计信息四、joining 拼接字符串五、groupingBy 分组1. 一级分组2. 一级分组,且统计co

2021-04-30 18:17:53 1756 2

原创 Java8 Stream(9)List集合查找 findFirst、findAny、anyMatch、allMatch、noneMatch

在开发中,经常要判断集合中是否有指定的值,对于在集合中查询匹配数据,可以用到findFirst、findAny、anyMatch、allMatch和noneMatch这些方法。先造点数据pigs.add(new Pig(1, "猪爸爸", 31, "M", false));pigs.add(new Pig(2, "猪妈妈", 28, "F", true));pigs.add(new Pig(3, "乔治", 2, "M", false));pigs.add(new Pig(4, "佩奇", 5,

2021-04-30 10:26:06 28341 1

原创 Java8 Stream(8)List集合统计 求和 最大值 最小值 平均值

对集合数据的统计,是开发中常用的功能,掌握好Java Stream提供的方法,避免自己写代码统计,可以提高工作效率。先造点数据:pigs.add(new Pig(1, "猪爸爸", 31, "M", false));pigs.add(new Pig(2, "猪妈妈", 28, "F", true));pigs.add(new Pig(3, "乔治", 2, "M", false));pigs.add(new Pig(4, "佩奇", 5, "F", false));一、统计个数用Stream

2021-04-30 07:05:22 24342 2

原创 Java8 Stream(7)List集合转换 map flatMap 区别

一、映射 mapmap是映射的意思,可以理解把数据1对1的转换。map方法定义如下<R> Stream<R> map(Function<? super T, ? extends R> mapper);Function<? super T, ? extends R> mapper表示一个函数,输入类型是T,输出类型是R。相当于把Stream流中每一个元素从T类型转换成R类型。1. 造点数据pigs.add(new Pig(1, "猪爸爸", 31

2021-04-29 18:29:43 1452 1

原创 Java8 Stream(6)List集合排序 多字段排序 Null值排序

一、单字段排序先造点数据pigs.add(new Pig(1, "猪爸爸", 31, "M", false));pigs.add(new Pig(2, "猪妈妈", 28, "F", true));pigs.add(new Pig(3, "乔治", 2, "M", false));pigs.add(new Pig(4, "佩奇", 5, "F", false));按照id升序pigs.sort(comparing(Pig::getId));按照id降序pigs.sort(compari

2021-04-29 16:00:43 8913 3

原创 Java8 Stream(5)List集合去重 distinct 和 toSet

一、distinct 去重Stream流的distinct()方法可以轻松实现去重。String[] codes = {"D", "A", "B", "A", "B","C"};List<String> codeList = new ArrayList<>(Arrays.asList(codes)) ;//distinctcodeList.stream() .distinct() .forEach(System.out::println);

2021-04-29 14:34:46 3293

原创 Java8 Stream(4)List集合过滤 filter 和 limit

一、过滤filterfilter似乎Stream中最常用的功能,在Java8之前,得在for循环中添加条件判断来过滤数据,非常难看。1. 先造点测试数据pigs.add(new Pig(1, "猪爸爸", 31, "M", false));pigs.add(new Pig(2, "猪妈妈", 28, "F", true));pigs.add(new Pig(3, "乔治", 2, "M", false));pigs.add(new Pig(4, "佩奇", 5, "F", false));2

2021-04-29 14:09:46 4229

原创 Java8 Stream(3)遍历 Map

一、Java8之前遍历Map的方式为啥要先介绍Java8之前的方式呢?因为没有对比,就没有伤害。1. 最常用的方式:遍历entrySet//最常见的用法,一般在键值对都需要使用for (Map.Entry<String, Object> entry : map1.entrySet()){ System.out.println(entry.getKey() + " : " + entry.getValue());}2. 在for循环中遍历key或者values一般适用于

2021-04-29 11:13:19 10299 1

原创 Java8 Stream(2)遍历 List

一、Java8之前遍历List方式1. Iterator迭代器Iterator<String> iterator = codeList.iterator();while (iterator.hasNext()){ System.out.println(iterator.next());}2. for循环for (int i = 0; i < codeList.size(); i++){ System.out.println(codeList.get(i));

2021-04-29 10:21:33 5684

原创 Java8 Stream(1)创建Stream

Java8 Stream(2)创建Stream一、什么是Stream二、创建Stream的方式1. 使用Stream静态方法创建Stream2. 通过Collection子类获取Stream三、 注意:流只能使用一次四、并行流五、总结一、什么是Stream集合是Java最最常用的API,我们代码里到处都有List、Map和Set等。而Stream可以看成遍历数据集的高级Iterator(迭代器)。Stream的语法优美,性能也还可以,是Java程序员必须要掌握的。二、创建Stream的方式创建S

2021-04-28 22:34:01 434 1

原创 Java8 CompletableFuture(2)回调函数 thenApply thenAccept thenRun

CompletableFuture 串行回调函数 thenApply thenAccept thenRun thenCompose一、前言二、串行的回调函数1. thenApply 转换结果2. thenAccept 消费结果3. thenRun 任务完成后触发的回调4. thenCompose5. thenApply,thenAccept,thenRun,thenCompose的区别一、前言在上一篇介绍了CompletableFuture的创建新线程,本篇博客讲解下串行的回调函数。二、串行的回调函数

2021-04-22 18:46:03 12392 5

原创 Java8 CompletableFuture(1)创建线程 supplyAsync runAsync

CompletableFuture 串行回调函数一、前言二、CompletableFuture创建新线程1. 创建测试用的业务类2. supplyAsync(有返回值)3. runAsync(无返回值)三、串行的回调函数1. thenApply 转换结果2. thenAccept 消费结果3. thenRun 任务完成后触发的回调4. thenCompose5. thenApply,thenAccept,thenRun,thenCompose的区别一、前言Java8推出了CompletableFutur

2021-04-22 18:19:29 3616

原创 Java多线程(十四) Java8 newWorkStealingPool 线程池

一、newWorkStealingPool是什么?newWorkStealingPool简单翻译是任务窃取线程池。newWorkStealingPool 是Java8添加的线程池。和别的4种不同,它用的是ForkJoinPool。使用ForkJoinPool的好处是,把1个任务拆分成多个“小任务”,把这些“小任务”分发到多个线程上执行。这些“小任务”都执行完成后,再将结果合并。之前的线程池中,多个线程共有一个阻塞队列,而newWorkStealingPool 中每一个线程都有一个自己的队列。当线程

2021-04-21 07:08:50 5060

原创 Java多线程(十三) Java创建线程池,参数详解

一、前言昨天下班后和老婆一起去吃烧烤,老婆一直抱怨工作压力大,在公司快2年也没涨薪,平时给的绩效都是C。所以到明年肯定还是不涨薪,感觉上班非常烦躁。其实她公司福利还可以,就说一直被打压下去,感觉没脸待了。毕竟30+的女同志,在IT行业不容易,她公司加薪都给男的程序员了。聊到最后她说:如果我收入高了,她也轻松点就在这家公司混了,不去考虑跳槽了。今天中午又告诉我之前上一家的同事现在跳槽了几家,现在跳到京东,年薪可高了,比我高很多。也怪我没本事,让老婆有这么大的职场焦虑,她还是个孕妇,每天照顾大宝都

2021-04-20 16:50:46 1419 3

原创 Java多线程(十二) Java中sleep和yield的区别

一、前言昨天大学时宿舍的舍长突然联系,说已经回到大学母校了,说是看望老师。提到以后有时间大家一起回母校聚一聚。时光荏苒,光阴似箭。我已人到中年,这些年我总会偶尔想起我的一位大学舍友。亮仔,大家都这么叫他,他在我对面的床,个子不高,比较瘦,脸很白,再配上天然的卷发。毕业后,没怎么联系过,有一天看到他QQ发了说说,大概是得了什么病,他自己也很奇怪。我问他怎么了,他只是简单的说得了肠道上的病,已经躺床上好久了。后来我也没问过,突然有一天,宿舍里和亮仔同乡的舍友发消息说亮仔已经走了。很惊讶这么突然,

2021-04-15 15:49:46 820

原创 Flink教程(23) 详解 算子链 并行度 Task

详解 算子链 并行度 Task亚瑟王镇楼一、前言二、WordCount程序的Job Graph(任务图)1. 代码和Job Graph(任务图)的对应关系2. 什么是并行度Parallelism?2. 为什么Socket Stream的**Parallelism**是1,后面2个的**Parallelism**是8?3. 如何设置并行度?3.1 Flink配置文件3.2 WebUI或者CLI3.3 代码中设置env全局并行度3.4 代码中设置算子的并行度3.5 并行度的优先级三、算子合并优化机制1. Wor

2021-04-07 19:22:30 3566 3

原创 Flink教程(22) 窗口 interval join的使用案例

Flink 窗口 interval join的使用一、前言二、interval join介绍三、语法案例一、前言在之前的博客两条流关联 window窗口的 join leftJoin使用案例中,介绍了window join的使用方法。但是window join可能稍微复杂和麻烦,现在在真实的工作中,用interval join的情况比较多。interval join相对逻辑简单,好理解些。二、interval join介绍interval join只支持事件时间的场景只能支持两条流的关联在

2021-04-01 16:01:55 2421

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除