list对象转map[通俗易懂]

list对象转map[通俗易懂]根据list对象中的某个属性转换成map/***将对象中的某个属性作为map的key将对象本身作为map的value构成成一个map**@paramfieldToKey必须是obj的field我们把field的getValue作为map的key*@authormountain2019-01-0717:21*/publicstatic<T,E>Map<T,E>listToM

大家好,又见面了,我是你们的朋友全栈君。

根据list对象中的某个属性转换成map

 /**
     * 将对象中的某个属性作为map的key 将对象本身作为map的value构成成一个map
     *
     * @param fieldToKey 必须是obj的field  我们把field的getValue作为map的key
     * @author mountain 2019-01-07 17:21
     */

    public static <T, E> Map<T, E> listToMap(List<E> listObj, String fieldToKey) {
        Map<T, E> map = new HashMap();
        for (E obj : listObj) {
            try {
                String name = obj.getClass().getName();
                Class.forName(name).newInstance();
                Class aClass = obj.getClass();
                Field declaredField;
                declaredField = aClass.getDeclaredField(fieldToKey);
                declaredField.setAccessible(true);
                String methodName = parGetName(declaredField.getName());
                Method method = aClass.getMethod(methodName);
                T fieldVal = (T) method.invoke(obj, new Object[] {});
                map.put(fieldVal, obj);
            } catch (Exception e) {
                logger.error("将对象中的某个属性作为map的key 将对象本身作为map的value构成成一个map出现异常", e);
            }
        }
        return map;
    }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145561.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构与算法Python_数据结构与算法python语言实现

    数据结构与算法Python_数据结构与算法python语言实现我们已经知道算法是具有有限步骤的过程,其最终的目的是为了解决问题,而根据我们的经验,同一个问题的解决方法通常并非唯一。这就产生一个有趣的问题:如何对比用于解决同一问题的不同算法?为了以合理的方式提高程序效率,我们应该知道如何准确评估一个算法的性能。本节学习首先介绍算法分析的重要性,并讲解了分析算法的时间复杂度和空间复杂度分析方法,最后介绍了Python列表和字典常见操作的时间复杂度。

    2022年9月27日
    3
  • LeetCode刷题:链表两数相加

    LeetCode刷题:链表两数相加

    2021年2月26日
    201
  • nbsp啥意思_UG拆分体

    nbsp啥意思_UG拆分体转载:http://blog.csdn.net/olei_oleitao/article/details/7919307 一、DM36X的BOOT过程介绍DM36x的BOOT过程和DM6446、DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上电复位后RBL在运行,然后读取BOOTMODE引脚的电平状态,决定

    2022年8月13日
    5
  • JVM 内存模型概述

    JVM 内存模型概述Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域都有各自的用途,以及创建和销毁的时间,并且它们可以分为两种类型:线程共享的方法区和堆,线程私有的虚拟机栈、本地方法栈和程序计数器。在此基础上,我们探讨了在虚拟机中对象的创建和对象的访问定位等问题,并分析了Java虚拟机规范中异常产生的情况。

    2022年6月12日
    33
  • 新建一个vue项目[通俗易懂]

    新建一个vue项目[通俗易懂]1.npm install -g vue-cli2.vue init webpack demo1demo1自定义项目名称创建成功后可以在目录下看到文件夹3.static文件夹用于存放一些静态资源,如图片图标等4. 组件存放在src/components文件夹中5.配置路由 ①package.json里查看”dependencies”是否有:”vue-router”: “^3.0.1″,没有就加上去 ②”src”目录下main.js是否引入路由,没有就加上 …

    2022年8月18日
    6
  • java中的Cipher类

    java中的Cipher类随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)该类位于javax.crypto包下,声明为publicclassCipherextendsObject此类为加密和解密提供密码功能。它构成了JavaCryptographicExtension…

    2025年9月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号