基于反射List转Map的一种通用泛型实现

本文介绍了如何通过反射和泛型技术,将List对象转换为Map,以提升在大数据量场景下的查询效率。文中提供了一个具体的实现,并通过测试验证了其效果,建议将此类操作封装为工具类以复用并优化代码质量。
摘要由CSDN通过智能技术生成

写在前面

网上list转map的方式很多,这里仅作为自己学习积累,如有雷同算我抄袭。

需求背景

实际项目中,由于不允许连表查询,往往是从A表查出list1,从B表查出list2,在内存中循环遍历根据某一属性相同,处理一些业务逻辑。当list的数据量大了之后,这种处理方式会比较慢,如果被leader看到这样的代码会被喷的。大家都知道Map因为其独特存储方式(不了解可以去看下hashMap的源码分析,网上很多),从Map里读数据是非常快的,这个时候将list1或者list2中的某一个转成map,再去做比对就快很多。

基于反射的实现

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;



/**
 * * 
 * @ClassName ListToMapUtil.java
 * <p>Description: list转map,属性需要提供getter方法</p>
 * @author 沉鱼
 * @date 2017年12月12日 上午9:33:12
 */
public class ListToMapUtil {
	private static final Logger LOGGER = LoggerFactory
			.getLogger(ListToMapUtil.class);
	/*** 
	 * 方法名 : listToMap
	 * <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值