list转map工具类
来源:互联网 发布:怎么提高软件质量 编辑:程序博客网 时间:2024/05/21 06:56
前言
项目中时长需要用到list转map的场景,比如需要查询所有用户的订单列表,但是用户和订单不在一个库的时候,无法进行join操作,就只能程序处理:先查询一批用户,再根据用户的id列表批量查询订单列表,然后在程序中拼接用户和其对应订单。因此写了个小工具类处理,现在分享出来。
工具类代码
package utils;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by Jack.wu on 2017/5/23. */public class ExtCollectionUtils { /** * list转map * @param list * @param keyField 需要成为为键的字段名称 * @param <K> * @param <V> * @return */ public static <K,V> Map<K,V> listToMap(List<V> list, String keyField){ Map<K,V> result = new HashMap<>(); if(list != null && list.size() > 0 && keyField != null && !"".equals(keyField)){ String firstLetter = keyField.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + keyField.substring(1); try { for(Object obj : list){ Method method = obj.getClass().getMethod(getter,null); K key = (K) method.invoke(obj,null); if(key != null){ result.put(key,(V) obj); } } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } return result; }}
测试
代码片段一:
public class Order { private Integer userId; private Integer orderId; private String orderName; //constructor //getter、setter}
代码片段二:
public static void main(String[] args) { List list = new ArrayList(); list.add(new Order(1,100,"订单一")); list.add(new Order(2,200,"订单二")); Map<Integer,Order> userMap = ExtCollectionUtils.listToMap(list,"userId"); System.out.println(userMap.get(1).getOrderName());}// 订单一
阅读全文
1 0
- list转map工具类
- java List、Object、String、Map转json 工具类
- json字符串转List/Map的工具类
- List转换成Map工具类
- jackson工具类json转list、json转map、json转bean、bean转json
- 总结的一些json格式和对象/String/Map/List等的互转工具类
- json字符串与Object、List、Map的互转工具类
- java 集合架构--[Collection] [List] [Set] [Map] [集合工具类]
- java 集合架构--[Collection] [List] [Set] [Map] [集合工具类]
- java 集合架构--[Collection] [List] [Set] [Map] [集合工具类]
- Android SharedPreferences工具类 ,实现List/Map的保存读取
- Java---List、Map、String相互转换工具类
- List<map>转List<bean>
- java Map 转 List
- java Map 转 List
- map转list
- Java List转Map
- map转list
- Django数据库 makemigrations 有变化但是 migrate时未变动
- Git常用命令
- 【openCV】有关在VS2013上进行openCV配置的注意事项
- Ubuntu16.4kylin 安装 teamviewer12乱码问题
- CentOS7.2 通过nfs设置共享文件夹
- list转map工具类
- SQL错误排查:子查询返回的值不止一个。子查询用作表达式时,这种情况是不允许的...
- Spring + Mybatis 使用 PageHelper 插件分页
- 网卡链路聚合之team
- jvm
- protobuf安装和入门
- 关于form提交乱码(SpringMVC)
- APOLLO服务器搭建
- 九九乘法表