java List转Map

在平时的编程过程中,list和map是集合中最常遇到的两种,熟练使用这两种集合是程序员必须具备的技能,list转map的应用常见也是很常遇到的,结合我最近的一个使用场景说一下:

比如我们需要这样的数据  a.id ,a.name b.role 这样的数据,显然这是存在两张表中的,一般我们设计到大数据量的情况下是不会采用连表查询的,连表查询很慢,这个就不多讲了吧。这样我们可以采用批量查询,在a表中查询 a.id ,a.name ,在b表中查询b.id(对应a.id) ,然后封装在两个list中,我们将bList转换为bListMap,在循环中通过key是id相同的,将b.role和a.id,a.name封装在返回类型的bean中。

批量查询的优点还是很明显的,在两个表都是几十万的数据量的情况下,批量查询的时间要比连表查询或者循环查询的时间节省了大概7倍或8倍,这是我亲测的。其中list转map扮演着很重要的角色。将批量查询出的结果在代码层进行组装,还是很快的,因为map的底层是走hash的。而且节省了查库的io请求时间,所以,还是比较快的。

下面是一些具体的使用demo

package test;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Apple {
    private Integer id;
    private String name;
    private BigDecimal money;
    private Integer num;
    public A
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值