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()); //删除最后一个字符,在这里就是删除最后一个逗号

相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies1 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
kakakahahahaha1 天前
Windows C盘空间不足的安全清理与迁移流程
windows·电脑·笔记本电脑·软件需求·c盘清理
做咩啊~1 天前
远程连接提示:身份验证错误,要求的函数不受支持
windows
百事牛科技1 天前
PPT只读怎么取消?四种情况分别处理
windows·powerpoint
熊明才2 天前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
xbzb2 天前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我123452 天前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
kakakahahahaha3 天前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu3 天前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows