MAP实现一个key,对应多个Value值。
最近遇到一个对我来说比较棘手的问题,通过java代码实现读取Execle中的数据存到MAP<String,List<Object(实体类中)>>,虽然不难,但是很久不写,感觉比较生疏,因此将写好的代码分享给大家,以供参考,如有什么问题和好的建议热烈欢迎评论区留言,共同探讨,共同进步。
public static Map<String,List<ExecleEntity>> read(String path) {
File file = new File(path);
InputStream inputStream = null;
Workbook workbook = null;
//List<String> list1 = new ArrayList<String>();
String str = "";
try {
//判断文件是否是Execle
inputStream = new FileInputStream(file);
//判断Excel的版本
workbook = WorkbookFactory.create(inputStream);
inputStream.close();
//工作表对象
Sheet sheet = workbook.getSheetAt(0);
//总行数
int rowLength = sheet.getLastRowNum();
//工作表的列
Row row = sheet.getRow(0);
//总列数
int colLength = row.getLastCellNum();
//得到指定的单元格
Cell cell = row.getCell(0);
//得到单元格样式
CellStyle cellStyle = cell.getCellStyle();
//new HashMap将读取execle循环出的值存进Map中。
map = new HashMap<String,List<ExecleEntity>>();
//根据行读取列数据,存到Map中。 for (int i = 2; i < rowLength; i++) {
row = sheet.getRow(i);
ExecleEntity entity = new ExecleEntity();
entity.setTestCase(row.getCell(0).getStringCellValue());
entity.setType(row.getCell(1).getStringCellValue());
entity.setElement(row.getCell(2).getStringCellValue());
entity.setAction(row.getCell(3).getStringCellValue());
entity.setText(row.getCell(4).getStringCellValue());
entity.setType1(row.getCell(5).getStringCellValue());
entity.setElement1(row.getCell(6).getStringCellValue());
entity.setAction1(row.getCell(7).getStringCellValue());
entity.setText1(row.getCell(8).getStringCellValue());
entity.setExpectValuel(row.getCell(9).getStringCellValue());
//如果key在MAP中存在,将value值set进map中。
if(map.containsKey(row.getCell(0).getStringCellValue())) {
List<ExecleEntity> list = map.get(row.getCell(0).getStringCellValue());
list.add(entity);
map.put(""+row.getCell(0).getStringCellValue()+"", list);
}else {
List<ExecleEntity> list = new ArrayList<ExecleEntity>();
list.add(entity);
map.put(""+row.getCell(0).getStringCellValue()+"", list);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
MAP实现一个key,对应多个Value值。相关推荐
- Map之一个Key存多个Value的MultiValueMap(一个键多个值)
在日常的开发中经常用到键值对,也就是Map啦,我们知道Map是一个接口,它的特点是一个Key对应一个Value,也就是一个键对应一个值,但是往往我们需要一个Key对应多个Value,这种时候系统的AP ...
- 【开源项目】Android下自定义HASH【支持一个key对应多个value--根据key排序】
package com.peace.love.carpo_test.tool;import java.util.List; import java.util.Map; import java.util ...
- Map封装 (一个键多个值)
转载:http://android.jobbole.com/83470/ 在日常的开发中经常用到键值对,也就是Map啦,我们知道Map是一个接口,它的特点是一个Key对应一个Value,也就是一个键对 ...
- 一个Key对应多个Value
Map 一个key对应一个value,它可以满足大部分需求.但有时我要用到一个key对应多个value怎么办? 1.普通做法 Map<Object,List<Object>> ...
- 获取map第一个的key和value_Hadoop学习之路(3)Map-Shuffle-Reduce详解与源码
@[TOC] 1 Split阶段 首先,接到hdf文件输入,在mapreduce中的map task开始之前,将文件按照指定的大小切割成若干个部分,每一部分称为一个split,默认是split的大小与 ...
- java map 随机取值_随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value...
利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一 ...
- MAP一个KEY多个value处理方法
遇到一个需求,查询每个人的工资汇总,按月份分割.但是查询是一次性出来多个人,所以说就用到了一个KEY对应多个value的情况. 简单来说处理逻辑是用Map<String,List>来封装数 ...
- 从Map中 取出第一个key/第一个value的方法
从Map中取出第一个 key 和 value 的方法,使用Map.Entry进行操作: 可与LinckedHashMap(按元素存入顺序排序的有序Hash表)搭配使用:实现特定的业务要求: /*** ...
- 如果要将对象用作Map中的key,需要注意什么
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 本文阅读时间大约5分钟. 参考答案 如果将对象作为Map中的key,需要是实现该对象的equal ...
最新文章
- Kmeans聚类定义、KMeans聚类的步骤、Kmeans聚类常见问题及改进、Kmeans聚类的变形、Kmeans聚类的优缺点
- 使用ISA Server 2006的DMZ区保护内网的服务器群
- VBA 的编写与执行
- jQuery的三种bind/One/Live事件绑定使用方法
- Python中JSON的基本使用
- Eureka深入理解
- oracle账号密码修改后特别容易锁定_Oracle数据库用户锁定原因以及处理方式(ORA-28000)...
- C# 入门笔记(脚本)
- 中职计算机英语教师教学总结,中职计算机教师教学工作总结 (3000字).doc
- STM32工作笔记0022---STM32F1开发版 GPIO口工作原理
- YOLO系列专题——YOLOv3理论篇
- MOQL--操作数(Operand) (一)
- iPhone白苹果、卡在系统升级界面
- spy++是可以获取浏览器当前页面的标题的,并且可以根据“窗口标题”和“类名”实现对浏览器的显示和隐藏,
- Android手机模拟器旋转快捷键
- 一起来看看,除夕夜有哪些走心的文案?
- Window系统下如何生成ssh key以及如何在码云中添加公钥
- 原生js实现上拉加载
- Matlab利用plot作图线形颜色等选择
- 《Ensemble Learning Methods for Deep Learning Neural Networks》笔记