利用java集合Set、Map、List等的特性,分类统计各组数据的数量
2018-03-10 21:32
821 查看
场景:一个大会的后台,客户报名签到管理系统,批量导入对客户已经分配的酒店
问题:因为后台中对酒店及对应房间类型有数量控制,导入之前,需要统计出Excel表中的各个酒店的不同类型房间的数量,
避免人为填写的Excel数据有误
前缀太多,现在让我们直奔主题吧!!!。。。。。。技术支持:
1、Map集合的键不重复;2、List集合的有序性;
3、Set集合的可重复性;
详解一:Excel导入时,怎样获取表中数据列表,【以下整体是一个方法,虚线为界,上部分获取Excel数据,下部分解析数据】
第一、先读取Excel,获取表中数据行数
第二、通过行数循环,将每行的数据封装成一个数组对象
第三、从数组对象中获取【酒店名称】+【房间类型】等你需要的信息
第四、将你获取的信息存到一个Map<String,String>中
第五、没辩词遍历结束,将Map<String,String>添加到一个dataList集合中
第六、遍历结束,表格中的提取的数据最终存到一个List中dataList<Map<String,String>>
详解二、对List<Map<String,String>>类型的数据进行分解,重组,最后完成分类、计数。
第一、创建一个Map<String,Set<String>>类型的集合
第二、遍历详解一获取的 dataList,对遍历后的每一个Map<String,String>,将【酒店名称】+【房间类型】, 拼接成一个Map<String,Set<String>>的键,将【房间类型】作为value(Set<String >)的一员
第三、遍历结束之后,数组中的每一个Map<String,String>都重组到Map<String,Set<String>> 中。
第四、迭代Map<String,Set<String>>;eg【Map<"酒店A单间",Set<"单间","单间","标间">>】,
第五、统计每个键及对应Value(Set<String>) 的个数N;便得出了:酒店A单间:N个
第六、与后台对应酒店的房间类型数量进行比较,得出Excel中的数据是否有超出系统设定的值?有的话,返回错误,不继续导入操作,都未超过,遍历 dataList,导入手动分配的酒店信息 。
-----------------------------------------------------------------------------------------------------------------
}
相关文章推荐
- Java利用反射向集合(List或Map)中存入任意类型的数据(绕过编译阶段)
- java 数据集合(set、map、list)
- Java 集合List、Set、Map特性总结
- map,set,list,等JAVA中集合解析
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- 【转帖】map,set,list,等JAVA中集合解析 - Java - cjw的资料
- map,set,list,等JAVA中集合解析(了解)
- 浅谈JAVA集合 Map List Set等java集合类
- Java:集合,Array、Collection(List/Set/Queue)、Map的遍历,比如:ArrayList,LinkedList,HashSet,HashMap
- 黑马程序员_java集合(1) Collection & List & Set & Map
- java集合map,set,list区别
- Java集合List,Set,Map基础
- 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
- JAVA中集合map,set,list详解
- map,set,list,等JAVA中集合解析(了解)
- java 集合架构--[Collection] [List] [Set] [Map] [集合工具类]
- java集合 set list map
- java中List 、 Set、Map 集合类的区别
- java集合map,set,list区别
- (转)map,set,list,等JAVA中集合解析(了解)