20230830工作心得:巧用标记位和For循环遍历

1 巧用标记位和For循环遍历

您可以使用一个 `Map<String, List<xxx>>` 类型的数据结构来根据手机号分组并保存多条线索。然后,可以按照以下方式进行操作:

  1. 设置一个标志位,比如一个布尔变量,用于记录是否已经成功推送了第一条线索。

  2. 遍历 `Map` 的键集合(即手机号集合)。

  3. 对于每个键(手机号),取出与之关联的线索列表。

  4. 遍历该列表,将相关参数(包括标志位)传入方法。

  5. 这个方法会返回一个标志位,表示是否成功执行了推送操作。您可以根据该标志位来决定是否将其设置为"已推送"状态。

  6. 在下一次循环开始时,继续从手机号对应的第一条线索开始执行。

这样操作后,同一个手机号一般只会在第一次推送成功后被标记为已推送,后续的线索都不会被再次推送。

代码写起来就像这样(待补充):

2 List类型 list.foreach 可以直接挨个修改list里的值

复制代码
List<Person> personList = new ArrayList<>();
personList.add(new Person(10, "zhangsan"));
personList.add(new Person(11, "lisi"));
personList.forEach(person -> person.setAge(1));

当然,你也可以用stream流完成这个操作。

复制代码
List<Person> personList1 = personList.stream().map(person -> {
    person.setAge(1);
    return person;
}).collect(Collectors.toList());

3 窗口函数根据某个条件分组,组内排序,然后取每组第N行或第N到M行数据

//取每组第一行数据

row_number() over(partition by xxx order by tc.create_time desc) as number where number = 1;

//取每组第1到3条数据

WHERE number BETWEEN 1 AND 3;

4 执行SQL语句,然后用List<Tuple>接收

为啥先用Tuple接受?

在某些情况下,查询结果可能包含多个表的联合查询,或者只要其中几个列的值 ,或者使用了复杂的 SQL 查询语句,导致查询结果的列与目标类的属性名称不完全匹配。这时,使用 List<Tuple> 类型可以接收包含多种类型数据的查询结果。

先用Tuple接受 ,然后转化为对应的类型。优雅。

代码像这样:

复制代码
//查询结果
List<Tuple> tuples = personRepository.findFirstByPhone(phones, "brand");
//映射
List<User> userList = JpaResultUtils.processResult(tuples, User.class);

5 删除 StringBuilder 最后一个字符

StringBuilder s = new StringBuilder();

s.append("123").append(",");

s.append("345").append(",");

s.delete(s.length()-1,s.length()); //删除最后一个字符,在这里就是删除最后一个逗号

相关推荐
阿白的白日梦4 天前
winget基础管理---更新/修改源为国内源
windows
埃博拉酱8 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
唐宋元明清21889 天前
.NET 本地Db数据库-技术方案选型
windows·c#
加号39 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
tryCbest9 天前
Windows环境下配置pip镜像源
windows·pip
呉師傅9 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
百事牛科技9 天前
保护文档安全:PDF限制功能详解与实操
windows·pdf
一个人旅程~9 天前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑
一个假的前端男9 天前
[特殊字符] Flutter 安装完整指南 Windows—— 2026最新版
windows·flutter
倚肆9 天前
在 Windows Docker 中安装并配置 Nginx (映射 Windows 端口与路径)
windows·nginx·docker