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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 两人下象棋_双人五子棋同屏

    两人下象棋_双人五子棋同屏阅读本文前,请您先点击右上角的蓝色字体“优课屋”,再点击“关注”,这样您就可以继续订阅文章了!(国际象棋怎么玩)在我门的生活中,棋类游戏种类非常的多,其中我们最常玩的棋类游戏有中国象棋,中国跳棋,五子棋,围棋,军棋的。而最近这几年我们很多人都接触到了国际象棋这个游戏,国际象棋其实和中国象棋有很多相似的地方,很多玩家也都特别喜欢玩国际象棋这个游戏。我们现在可以非常方便的在我们身边的网络棋牌…

    2022年8月29日
    3
  • Python创建容器和集合之源码分析

    _collections_abc.py文件中提供了许多抽象基类,这些类将集合分解成许多互相独立的属性集__all__=["Awaitable","Coroutin

    2021年12月19日
    40
  • 关于so文件你需要知道的知识「建议收藏」

    关于so文件你需要知道的知识「建议收藏」1.什么是CPU架构及ABIAndroid系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPS(从2012年起),ARMv8,MIPS64和x86_64(从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口(ApplicationBinaryInterface)定义了二进制文件(尤其是.so文件)如何运行在…

    2022年9月19日
    6
  • 关于pytorch安装之后但是没有办法导入pycharm的原因

    关于pytorch安装之后但是没有办法导入pycharm的原因首先要确定你是否真的安装了,可以用condalist`安装完pytorch之后没有办法导入的问题,我碰到过两种情况。第一种:安装了但是python无法导入什么意思呢,详情参照下图就像我这样,在命令行打入python(当然,你用IDE和pycharm也是一样的)显示的是‘Nomodulenamed‘torch’那么在这里首先你就要检查配置环境是否有问题了,cuda和cudnn这些环境是否安装,版本是否对应。然后,可以尝试检查pytorch环境是否存在,import的处理过程,会在

    2022年8月25日
    11
  • 代码性能优化–NENO编程

    由一个简单例子上手neonh:https://blog.csdn.net/dwyane12138/article/details/78697210NDK编译——NEON支持:https://blog.csdn.net/suningning/article/details/74510542https://developer.android.com/ndk/guides/cpu-arm-neon…

    2022年4月5日
    59
  • centos6.2+nginx-1.2.3+php-5.3.17安装脚本「建议收藏」

    centos6.2+nginx-1.2.3+php-5.3.17安装脚本

    2022年1月29日
    47

发表回复

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

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