java中list强转为map类型
起因:读取数据库文件的测试用例,测试用例需要存放到一个map中,方便下次调用,
读取的内容返回的内容存放在一个list中,并且数据内容是key=value的形式,最开始使用切片方式,做了很多无用功,后面老大指正使用索引方式可以强转为map,具体内容如下:
读取出来的数据格式为:
[{leader=test, item=重复注册失败, code=null, creatertime=-- ::, manual_test_time=, module=com.xx.xx.RW_register, project_code=xx-pc, precondition=在注册页面, testname=register_repetition, funmodule=注册, teststep=.邮箱栏输入无效邮箱注册如:xxcv@
.点击注册按钮,注册失败,提示, exelevel=P1, test_describe=邮箱己注册过,注册失败, id=8aa184fb5d204068015d2a5376173c39, verification_content=.注册提示“The email address is already in use”, updatetime=-- ::, remarks=null
第一种:使用索引的,进行list的强转,代码如下:
public static void listcase2(){
Map<String, String > map = new HashMap<String, String>();
String sql="select * from "+DBhandle.tabel+" where project_code='rosewholesale-pc' ";
Log.logInfo(sql);
DBhandle handle=new DBhandle(); List querylist2=handle.query(sql); //读取数据库文件后放入到一个list中
Map<String, String> m = new HashMap<String, String>();//用于存放带转换后的map文件
for(int i=0;i<querylist2.size();i++){
m=(Map<String, String>) querylist2.get(i); //通过索引方式进行转换类型的强转 Set keySet = m.keySet(); // 读取map中的文件
Iterator<String> it = keySet.iterator();
while(it.hasNext()){ //挨个遍历
Object k = it.next(); // key
Object v = m.get(k); //value
System.out.println("K:" + k + " V:" + v);
} }
效果如下:
第二种方法,使用split进行分割
可以从得去的数据来看,每一个条数据,最开始使用,使用的逗号和等号方式组成一个字段,按照以上的内容我自己进行分割
代码如下:
public static void listcase(){
Map<String, Object> map = new HashMap<String, Object>();
String sql="select * from "+DBhandle.tabel+" where project_code='rosewholesale-pc' ";
Log.logInfo(sql);
DBhandle handle=new DBhandle();
List querylist2=handle.query(sql);
Map<String, String> m = new HashMap<String, String>();
String[] getcase = null;
String[] cases = null;
String[] keys=null;
getcase=querylist2.toString().split("},");//取出的数据很多,先进行使用逗号进行分割,分割
for (int i = 0; i < getcase.length; i++) {
Log.logInfo("使用和大括号 和逗号分割的测试用例:"+getcase[i]);
cases = getcase[i].replace("[{", "").replace("{", "").split(",");
Log.logInfo("在使用逗号进行分割:"+getcase[i]);
for (String s: cases) {
String[] keyText = s.split("="); // 转换key与value的数组
Log.logInfo("在使用等号进行分割:"+getcase[i]);
if (keyText.length < 1) {
continue;
}
String key = keyText[0]; // key
String value = keyText[1]; // value map.put(key, value);
} Set keySet = map.keySet(); // key的set集合
Iterator it = keySet.iterator();
while(it.hasNext()){
Object k = it.next(); // key
Object v = map.get(k); //value
System.out.println("K:" + k + " V:" + v);
}
} }
效果也是一样,但是有一点,如果在value中有一个带有逗号的,那就可能会切错
java中list强转为map类型的更多相关文章
- javabean实体类对象转为Map类型对象的方法(转发)
//将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...
- JAVA 中的 Collection 和 Map 以及相关派生类的概念
JAVA中Collection接口和Map接口的主要实现类 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...
- Java中的Set,List,Map的区别
1. 对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 ja ...
- Java中的基本类型和包装类型区别
首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
- java中读取特殊文件的类型
java中读取特殊文件的类型: 第一种方法(字符拼接读取): public static String getType(String s){ String s1=s.substring(s.index ...
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- Java中集合List,Map和Set的差别
Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...
- Java中的两种异常类型及其区别?
Java中的两种异常类型是什么?他们有什么区别? Throwable包含了错误(Error)和异常(Excetion两类) Exception又包含了运行时异常(RuntimeException, 又 ...
随机推荐
- LOJ6053 简单的函数(min_25筛)
题目链接:LOJ 题目大意:从前有个积性函数 $f$ 满足 $f(1)=1,f(p^k)=p\oplus k$.(异或)求其前 $n$ 项的和对 $10^9+7$ 取模的值. $1\le n\le 1 ...
- [Django笔记] django结构分析
看了一段时间django官方文档,先把自己理解的django目录结构记录一下 目录结构 一个成熟的django项目的结构大致如下: /project/ |-- project/ |-- setting ...
- 乐字节Java8核心特性之Optional类
大家好啊,上次小乐给大家介绍了Java8最最重要的一个特性——Stream流,点击可以回顾哦. Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在 ...
- PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef
猫宁!!! 参考链接:https://www.4hou.com/info/news/981.html 这个产品免费开源易用,如果称之为网络瑞士军刀,没什么异议. github地址:https://gi ...
- 20165224 陆艺杰 Exp 8 Web基础
.基础问题回答 (1)什么是表单 html的一个控件 表单在网页中主要负责数据采集功能 (2)浏览器可以解析运行什么语言 html xml jsp php python 等 (3)WebServer支 ...
- tomcat mamcached session共享方法
下载后输入命令安装命令: c:\memcached\memcached.exe -d install 然后再输入如下命令把其作为win service常驻启动: c:\memcached\memcac ...
- Github网站css加载不出来的处理方法(转,亲测有效)
转载链接:https://blog.csdn.net/qq_36589706/article/details/80573008因为工作需求,自己会经常使用到github,但是突然有一天打开github ...
- angular双向绑定与单向绑定的写法区别
[ngModel]="manualCode" (ngModelChange)="manualCode=$event;" 等价于下面这样的写法: [(ngMode ...
- 华东交通大学2017年ACM“双基”程序设计竞赛 1009
Problem Description MDD随机生成了n(n<le5)个随机数x(x<=1e9),这n个随机数排成一个序列,MDD有q(q<=le5)个询问,每个询问给你一个a,问 ...
- 1100 Mars Numbers(20 分)
People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ...