eclipse-collections
志向和热爱是伟大行为的双翼。——歌德 之前分享了vavr,今天在分享一个同类框架eclipse-collections 官方文档:http://www.eclipse.org/collections/ 1234567891011<dependency> <groupId>org.eclipse.collections</groupId> <artifactId>eclipse-collections-api</artifactId> <version>11.0.0</version></dependency><dependency> <groupId>org.eclipse.collections</groupId> <artifactId>eclipse-collections</artifactId> <version>11.0.0</version></dependency&...
List<Map>聚合为单个Map<List>
科学是到处为家的,不过,在任何不播种的地方,是决不会得到丰收的。——赫尔岑 前两天有人给我的项目stream-query提交了PR,新增了一个Collector实现 我稍微研究了一下,发现与Collectors原生命名风格不统一,且不具备Collectors包下面的对象通用性,于是就移除了 但这个功能是可以保留的 我的实现如下: 1234567891011121314151617181920212223242526@Testvoid testReducing() { Set<Map<String, Integer>> nameScoreMapList = Stream.of( new HashMap<String, Integer>() {{ put("苏格拉底", 1); put("特拉叙马霍斯", 3); }}, Co...
reducing和reduce
我的悲伤还来不及出发,就已经到站下车。——《第七天》 在java中,分为Collectors.reducing和Stream#reduce reduce是减少的意思,此处意为聚合 聚合是聚拢、合并的意思 我们来看看这俩函数的区别吧,下方我用了静态导入: 1234567import java.math.BigDecimal;import java.util.*;import java.util.function.BinaryOperator;import java.util.stream.Collector;import java.util.stream.Stream;import static java.util.stream.Collectors.*; 首先是写法差异,对于只有一个参数的,这个参数指定了我们聚合的操作,此处我做一个累加,返回值为Optional证明有可能不存在值,就没有累加 1234Optional<Integer> sumOpt = Stream.iterate(0, i -> ++i).limit(10).collect(reduci...
idea打印断点日志
履不必同,期于适足;治不必同,期于利民。——魏源 先上图 然后开始 水字数 讲解: 我们可以看到当我们debug设置断点时,如果勾选了黄色区域 Log: "Breakpoint hit" message(日志 “断点命中”消息) 此时当我们的断点触发后,会打印断点命中时的信息 1BreakPoint reached at 类名:行号 旁边还有一个Stack trace 和上面的类似,但会打印出堆栈信息
gitee、github、maven图标
人生碌碌,竞短论长,却不道荣枯有数,得失难量。——《浮生六记》 朋友问我stream-query官网这个图标怎么搞: 实际上是这样一个网站生成的:https://shields.io/ 比如我这里搜maven: 可以看到下方的示例,我们点击下面的图标,弹出一个框 填好配置即可 点击Copy Badge URL就可以使用啦! 1https://img.shields.io/maven-central/v/io.github.vampireachao/stream-query?color=%23ff&label=maven%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93
js让光标选择节点中部分文本
我走得很慢,但我从不后退。——林肯 如题,代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><body> <div id="container">ruben</div> <button>r</button> <button>u</button> <button>b</button> <button>e</button> <button>n</button> &...
2.7版本spring.factories弃用
手我是有的,就是不知如何碰你。——顾城 之前我写过一个编写一个spring-boot-starter-fastjson 今天看了一下,新版本的spring2.7,已经弃用了spring.factories 最新版的写法为: 也就是说: 里面配置放包名即可
konva实现双击编辑富文本
那一天我二十一岁,在我一生的黄金时代,我有好多奢望。我想爱,我想吃,我想在一瞬间变成天上半明半暗的云。——《黄金时代》 完整代码放到了:https://gitee.com/VampireAchao/simple-konva-html 主要是这个文件 https://gitee.com/VampireAchao/simple-konva-html/blob/master/richtext-dragable.html 思路来源:https://konvajs.org/docs/sandbox/Rich_Text.html 主要思路: 1.双击时创建(我这里是隐藏显示再定位)富文本dom节点 2.通过htmlToCanvas转换html为canvas 3.使用Konva.Image渲染 效果还是蛮不错的,能做polotno的类似案例
vavr
你的地图是一张白纸,所以即使想决定目的地,也不知道路在哪里。——《解忧杂货店》 分享一个java函数式库,简介我们的代码:https://www.vavr.io/ 首先我们引入: 12345<dependency> <groupId>io.vavr</groupId> <artifactId>vavr</artifactId> <version>1.0.0-alpha-4</version></dependency> 文档:https://docs.vavr.io/ 例如以前我们编写类似代码: 1234int divide(int dividend, int divisor) { // throws if divisor is zero return dividend / divisor;} 可能会抛出除0异常 使用vavr: 1234// = Success(result) or Failure(exception)Try&l...
vue2配置vite
天可补,海可填,南山可移。日月既往,不可复追。——曾国藩 本篇博客针对新vue2项目,老项目就先不说了哈哈(坑太多) 首先新建一个vue2项目 1vue create simple-vue2-vite 选择Default ([Vue 2] babel, eslint) 1234567891011success Saved lockfile.Done in 3.92s.⚓ Running completion hooks...📄 Generating README.md...🎉 Successfully created project simple-vue2-vite.👉 Get started with the following commands: $ cd simple-vue2-vite $ yarn serve 安装完毕后我们进入,执行 12cd simple-vue2-viteyarn serve 可以看到正常运行: 我们首先安装vite 1pnpm i -D vite vite-plugin-vue2 根目录新建一个vite.config....
