【代码分享】List按照V的某个属性分组的通用代码实现

oh_Maxy 2015-12-08 05:26:24
比如表A,有属性a,b,c...,然后从数据库查出来一系列的list,想按照b属性分组,把b属性相同的放到一个list中,最终形成map结构为Map<b,List<A>>
项目中经常重写这段分组逻辑,每增加一个表就会重写一次。于是就写了份统一的共方法,也不知道什么CollectionUtils之类的工具类有没有实现过了。

具体见【代码分享】关于List<V>按V的某个属性分组的通用代码实现

欢迎大家提出更好的方案,或者某个Utils已经有了类似的功能,也可以说下,也好去学习学习。
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
来接分了
  • 打赏
  • 举报
回复
你要不要考虑map的线程安全呢? 比如用ConcurrentHashMap 实现
oh_Maxy 2015-12-08
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
我的想法跟你一样,还是通过反射来实现, 其实通过反射获取到相同的属性名称 然后去做map存储, 先拿key去map里面取一次,取不到new一个,取到了存
嗯,这个存的思路挺好的,类似Spring缓存sql的思路。还可以加上map规模的限制,以及最近最久未使用等淘汰算法,这样效率应该会大大提高。
  • 打赏
  • 举报
回复
我的想法跟你一样,还是通过反射来实现, 其实通过反射获取到相同的属性名称 然后去做map存储, 先拿key去map里面取一次,取不到new一个,取到了存

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧