博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List -> Map 工具类,list转为map
阅读量:6994 次
发布时间:2019-06-27

本文共 1699 字,大约阅读时间需要 5 分钟。

提供了List转为Map的2种方法,第一种convertOne是常规转换,以key作为map的key,以list中的E作为value;第二种则以key作为map的key,以list作为value @SuppressWarnings("unchecked")final public class MapConverter {    private static final String GET = "get";    private MapConverter() {        throw new AssertionError("Util禁止反射实例化");    }    public static 
Map
convertOne(List
list, String key) { if (CollectionUtils.isEmpty(list)) { return null; } Map
map = null; try { Method getM = getMethod(list.get(0).getClass(), key); map = new HashMap<>(); for (E en : list) { K k = (K) getM.invoke(en); map.put(k, en); } } catch (Exception e) { e.printStackTrace(); } return map; } public static
Map
> convertList(List
list, String key) { if (CollectionUtils.isEmpty(list)) { return null; } Map
> map = null; try { Method getM = getMethod(list.get(0).getClass(), key); map = new HashMap<>(); for (E en : list) { K k = (K) getM.invoke(en); List
res = map.get(k); if (res != null) { res.add(en); } else { List
l1 = new ArrayList<>(); l1.add(en); map.put(k, l1); } } } catch (Exception e) { e.printStackTrace(); } return map; } private static Method getMethod(Class clazz, String key) throws NoSuchMethodException { if (key.startsWith(GET)) { return clazz.getMethod(key); } if (Character.isUpperCase(key.charAt(0))) { clazz.getMethod(GET + key); } return clazz.getMethod(GET + Character.toUpperCase(key.charAt(0)) + key.substring(1)); }}

 

转载于:https://www.cnblogs.com/zad27/p/10991138.html

你可能感兴趣的文章
Python 程序如何高效地调试?
查看>>
nginx(源码)
查看>>
基本数据类型
查看>>
HP服务器Linux下hpacucli常用命令
查看>>
htop/dstat/glabce工具介绍
查看>>
IIS 6.0安全管理配置规范
查看>>
PHP开发工具(PHP IDE)对比评测:Zend Studio VS NetBeans PHP
查看>>
经典算法在几个开源项目中的应用
查看>>
响应式Web设计与CSS(下)
查看>>
MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序【转】
查看>>
【Java 开发】MySQL 开启远程连接的方法
查看>>
PS 如何改变一个icon的颜色
查看>>
【go-micro实践】micro API 网关增加JWT鉴权功能
查看>>
cell展开的几种方式
查看>>
[BZOJ3524]区间问题(主席树)
查看>>
SQLServer 系统数据库
查看>>
Redis删除特定前缀key的优雅实现
查看>>
sed将上下两行并列
查看>>
【算法专题】多项式运算与生成函数
查看>>
[BZOJ 1066][SCOI2007]蜥蜴(网络流)
查看>>