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

相关推荐
rjc_lihui1 小时前
Windows 运程共享linux系统的方法
windows
失忆爆表症1 小时前
01_项目搭建指南:从零开始的 Windows 开发环境配置
windows·postgresql·fastapi·milvus
阿昭L1 小时前
C++异常处理机制反汇编(三):32位下的异常结构分析
c++·windows·逆向工程
梦帮科技15 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
Lois_Luo15 小时前
关闭Win10强制所有应用以管理员身份运行
windows
luoyayun36116 小时前
实现Windows系统标题栏颜色跟随主题动态切换
windows·系统标题栏颜色·标题栏颜色
猫头虎17 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
呉師傅20 小时前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
梦帮科技21 小时前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
春日见1 天前
如何创建一个PR
运维·开发语言·windows·git·docker·容器