Chuenhung的个人网站

chuenhung.github.io

对象List处理

List转为HashMap

利用Collectors.toMap方法实现,若重复Key则覆盖。

1
2
3
4
5
6
7
8
9
10
// 值为对象
Map<String, Account> map = accountList.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2));
// 值为字段
Map<Long, String> map = accountList.stream().collect(Collectors.toMap(Account::getId, Account::getUsername,(key1, key2) -> key2));
// 自定义键值
Map<String, String> dbCompanyFiledMap = dbCompanyFiledList.stream()
.collect(Collectors.toMap(
companyFiled -> companyFiled.getCompanyId() + companyFiled.getCompanyFiled(),//键
AchievementCompanyFiled::getReGroupFiled, //值
(key1, key2) -> key2));
阅读全文 »

实现逻辑

自定义渲染策略实现逻辑:

  • 找到模板中的表格标签
  • render方法接收java中对应模板表格标签的所有list数据
  • 执行自定义渲染逻辑

参考代码

word模板如下:
在这里插入图片描述

阅读全文 »

函数式接口

什么是函数式接口

  • 只包含一个抽象方法的接口,称为函数式接口。
  • 可以通过 Lambda 表达式来创建该接口的实现类。

函数式接口只会有一个抽象方法,default方法不属于抽象方法,接口重写了Object的公共方法也不算入内,所以Comparator是函数式接口。

Java内置函数式接口

四大核心接口

接口名 参数类型 返回类型 用途
Consumer<T> 消费型接口 T void void accept(T t);
适合“传递参数没有返回值”的场景
Supplier<T> 供给型接口 T T get();
适合“没有参数有返回值”的场景
Function<T,R> 函数型接口 T R R apply(T t);
适合“传递参数有返回值”的场景
Predicate<T> 断定型接口 T boolean boolean test(T t);
适合“传递参数返回boolean值”的场景
阅读全文 »

入门

开始和结束

正则表达式中 ^ 指定的是一个字符串的开始,$ 指定的是一个字符串的结束。
例如,
匹配以p开头的python字符串:
在这里插入图片描述
匹配以n结尾的python字符串:
在这里插入图片描述

阅读全文 »
0%