写在前面
网上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
* <