利用java集合Set、Map、List等的特性,分类统计各组数据的数量

本文介绍了一种从Excel文件中提取酒店房间分配信息的方法,并详细讲解了如何使用Map、List和Set集合来处理这些数据,确保数据的有效性和一致性。

场景:一个大会的后台,客户报名签到管理系统,批量导入对客户已经分配的酒店
问题:因为后台中对酒店及对应房间类型有数量控制,导入之前,需要统计出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,导入手动分配的酒店信息 。             

-----------------------------------------------------------------------------------------------------------------

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值