Java 中的List动态转Map集合

首先创建一个实体类

package com.tyzou.controller;public class Test {private String name;private String pwd;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

2.创建Util类

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class Util<T>{/**** List动态转Map* @return* @throws IllegalAccessException * @throws IllegalArgumentException */public  List<Map<String,Object>> listToMap(List<T> list,Class clazz) throws IllegalArgumentException, IllegalAccessException{List<Map<String,Object>> maps=new ArrayList<Map<String,Object>>();Field[] fs = clazz.getDeclaredFields(); //属性集合for(Object obj:list){Map<String,Object> map=new HashMap<String, Object>();for(Field f:fs){f.setAccessible(true); //设置些属性是可以访问的  Object val = f.get(obj);//得到此属性的值     if(f.getType().toString().endsWith("String")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("Integer")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("int")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("float")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("Float")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("Double")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("double")){map.put(f.getName(), val);}else if(f.getType().toString().endsWith("Integer")){map.put(f.getName(), val);}}maps.add(map);}return maps;}public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {Test test=new Test();test.setName("111111");test.setPwd("aaaaaaa");Test test2=new Test();test2.setName("2222222");test2.setPwd("bbbbbbbbbbbb");List<Test> list=new ArrayList<Test>();list.add(test);list.add(test2);Util<Test> util=new Util<Test>();List<Map<String,Object>> maps=util.listToMap(list, Test.class);for(Map<String,Object> map:maps){Iterator i= map.entrySet().iterator();while(i.hasNext()){Map.Entry e=(Entry) i.next();System.out.println(e.getKey()+"    "+e.getValue());}}}
}

3.查看输出结果

pwd aaaaaaa

name 111111

pwd bbbbbbbbbbbb

name 2222222

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 使用rem布局时怎样合理设置根标签字体大小?

[css] 使用rem布局时怎样合理设置根标签字体大小&#xff1f; UI出2倍稿&#xff0c;然后用js计算当前设备和UI设计稿之间的比例关系&#xff0c;通过resize实时计算根标签字体大小&#xff0c;即可。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易…

Centos7安装SVN+HTTP

1.首先安装svn yum install subversion 2.安装httpd yum install httpd 3.安装apache的svn操作模块 yum install mod_dav_svn yum install openssl openssl-devel 4.查看svn版本 svnserve –version 5.创建svn版本库 svnadmin create /home/svn/project 6.进入svn的c…

【转】30种MySQL索引优化的方法

第一方面&#xff1a;30种mysql优化sql语句查询的方法 1.对查询进行优化&#xff0c;应尽量避免全表扫描&#xff0c;首先应考虑在 where 及 order by涉及的列上建立索引。2.应尽量避免在 where 子句中使用 !或<> 操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描…

[css] 解释下css3的flexbox(弹性盒布局模型),以及它应用场景有哪些?

[css] 解释下css3的flexbox&#xff08;弹性盒布局模型&#xff09;&#xff0c;以及它应用场景有哪些&#xff1f; 手机端中比较常用的三段式布局, 头尾固定高度 中间自适应 它可以修改父元素下所有子元素的位置 和排序方式 相对于浮动 更加强大 要注意的是指定flex之后,子元…

centos下resin4启动一会儿自动关闭处理

启动的时候用下面的方式启动就不会自动关闭了&#xff1a; ./resin.sh -conf /u02/resin4/conf/resin.xml -server app-0 startmyeclipse可以在 Optional program arguments里面填写&#xff1a;-server app-0

[css] 你有使用过vmax和vmin吗?说说你对它们的理解

[css] 你有使用过vmax和vmin吗&#xff1f;说说你对它们的理解 vmax和vmin都是相对于窗口大小的长度单位。100vmax相当于100%当前窗口长或者宽的长度&#xff0c;取其中最大值&#xff0c;vmin反之。如果css函数max()和min()普及后&#xff0c;100vmax相当于max(100vw, 100vh)个…

BZOJ 1086 [SCOI2005]王室联邦(树分块)

题意&#xff1a;中文题&#xff0c;略 思路&#xff1a;秦皇岛前就一直想学&#xff0c;后来没怎么想通&#xff0c;就算了。现在雅不是很懂&#xff0c;一直似懂非懂的&#xff0c;对于树分块的种类&#xff0c;有位聚聚已经整理好了&#xff08;传送门&#xff09;&#xff…

svn locked解决方法

方法一.直接进行cleanup&#xff1b;对较小的文件比较管用&#xff0c;文件稍大些等待时间很长或不起作用&#xff1b; 方法二.选择文件&#xff0c;右键执行release lock&#xff1b;等待时间较长&#xff1b; 方法三.手动删除锁定文件(推荐)&#xff1a; 在运行中输入cmd进入…

[包计划] node-fs-extra

node-fs-extra fs-extra 添加了未包含在 fs 模块中的文件系统方法&#xff0c;并为 fs 方法添加了 promise 支持。 const fs require(fs-extra)// Async with promises: fs.copy(/tmp/myfile, /tmp/mynewfile).then(() > console.log(success!)).catch(err > console.er…

[css] css中padding和margin是相对于父元素还是子元素呢?

[css] css中padding和margin是相对于父元素还是子元素呢&#xff1f; padding就是往自己身体里塞东西&#xff08;盒子里面&#xff09;&#xff0c;margin就是穿衣服&#xff08;盒子外面&#xff09;。 >padding相对于子元素&#xff0c;margin相对于父元素个人简介 我是…

MyEclipse2015双击不能打开文件

1.返回桌面 2.连续按5次Shift键 3.点击启用粘滞键 4.再点击应用&#xff0c;然后确定 4.然后重新打开一下myeclipse2015就可以了 第二种方法&#xff1a; 1.关闭MyEclipse Explor窗口&#xff08;这个MyeclipseExplor是有问题的&#xff0c;不推荐用这个&#xff09; 2.W…

python 获取当前文件夹下所有文件名

os 模块下有两个函数&#xff1a; os.walk() os.listdir() 1 # -*- coding: utf-8 -*- 2 3 import os 4 5 def file_name(file_dir): 6 for root, dirs, files in os.walk(file_dir): 7 print(root) #当前目录路径 …

[css] 使用css实现彩虹的效果

[css] 使用css实现彩虹的效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>彩虹</title><style>.rainbow-wrap {width: 500px;height: 500px;background-color: red;position: relati…

MyEclipse2015 Web项目转Maven项目

1、新建一个Web项目 下面是web项目的结构&#xff1a; 2.项目右键属性(开始转啦&#xff0c;注意诺) 注意&#xff1a;Target runtime可以随便选一个运行容器&#xff0c;比如tomcat,也可以不改动,直接下一步 注意&#xff1a;下面一定要选Standard Maven JEE project structu…

【题解】洛谷P4145 花神游历各国(线段树)

洛谷P4145&#xff1a;https://www.luogu.org/problemnew/show/P4145 思路 这道题的重点在于sqrt(1)1 一个限制条件 与正常线段树不同的是区间修改为开方 那么我们用一个数组记录每个区间的最大值 只有当这个区间的最大值大于1时才需要开方 因此 当我们更新到叶子节点时把每个区…

[css] 怎么IE6下在使用margin:0 auto;无法使其居中?

[css] 怎么IE6下在使用margin:0 auto;无法使其居中&#xff1f; 浏览器解析的问题&#xff0c;IE6下需要对居中的元素设置text-align:center属性使其margin:0 auto;生效。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷…

MyEclipse2015修改项目部署名称(WebContextRoot)

项目右键,properties中查找myeclipse----》deployment assembly----》往下拉---》web context root 路径修改。

基于墨刀实现的短视频分享软件原型设计

1.设计理念 最近几年&#xff0c;随着生活节奏的加快&#xff0c;“快餐文化”成了社会的主流&#xff0c;人们乐于忙里偷闲&#xff0c;或者在电车上&#xff0c;或者在等车时&#xff0c;又或者忙了很久有些疲惫的时候打一局竞技手游&#xff0c;或是逛逛抖音&#xff0c;b站…

[css] 如何使用CSS3的属性设置模拟边框跟border效果一样?

[css] 如何使用CSS3的属性设置模拟边框跟border效果一样&#xff1f; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.box {width: 200px;height: 200px;backgroun…