通过Map进行分类
来源:互联网 发布:炒股软件mac版 编辑:程序博客网 时间:2024/05/20 19:29
通过Map进行分类,以下通过一个小例子进行解析,说明更容易理解!
目的:根据物料编码+物料名字+物料id进行分类
操作步骤:
1、首先定义一个map类,map里面放着一个 key 以及 一个 value,如下代码所示:(key是指上面所说的 编码+没名字+id,value指的是满足这三个组合在一起的 细单)
Map<String, List<AppPriceAffirmDetail>> map = new HashMap<String, List<AppPriceAffirmDetail>>();
2、进行遍历整个获得到的数据,是个list,遍历先判断物料编码以及名字是否为空,不为空的情况下,进行key的赋值,然后通过map的get(key)的方法获取满足条件的已分类的细单,判断,如果此时获取到已分类的细单为空,那么就新建一个list,然后把遍历的该条未分类的细单放进去,然后通过map的put(key,value)的方法进行放置,如果获取到的已分类的细单不为空,证明找到了放置该key所对应的value,那么直接把该条未分类的细单放进去已分类的list的细单中,具体的代码如下所示:
Map<String, List<AppPriceAffirmDetail>> map = new HashMap<String, List<AppPriceAffirmDetail>>(); for (AppPriceAffirmDetail priceAffirmDetail : appPriceAffirmDetails) { String materialCode = priceAffirmDetail.getMaterialCode(); String materialName = priceAffirmDetail.getMaterialName(); Long priceInquiryMaterialId = priceAffirmDetail .getPriceInquiryMaterialId(); if (StringUtils.isBlank(materialCode) && StringUtils.isBlank(materialName)) { continue; } String key = materialCode + "," + materialName + "," + priceInquiryMaterialId; List<AppPriceAffirmDetail> priceAffirmDetails = map.get(key); if (priceAffirmDetails == null) { priceAffirmDetails = new ArrayList<AppPriceAffirmDetail>(); priceAffirmDetails.add(priceAffirmDetail); map.put(key, priceAffirmDetails); } else { priceAffirmDetails.add(priceAffirmDetail); } }
3、完成分类后进行整理,通过set方法进行整理,得出来的东西就是 无聊编码+物料名称+物料id,然后以下就是 满足该条件的细单!由于界面需要,以下代码只有设置 物料编码以及物料名称,但是不影响分类的结果!
for (String str : keys) { String[] strs = str.split(","); AppPriceAffirmDetailByMaterial appPriceAffirmDetailByMaterial = new AppPriceAffirmDetailByMaterial(); appPriceAffirmDetailByMaterial.setMaterialCode(strs[0]); appPriceAffirmDetailByMaterial.setMaterialName(strs[1]); List<AppPriceAffirmDetail> a = map.get(str); ......做你想做的事情...... }
以上是小编在项目过程中的小小经验,如果有帮助到你,欢迎点赞或者给力一点哦!转发需注明文章的出处,谢谢!
阅读全文
0 0
- 通过Map进行分类
- 对map通过key进行排序
- 通过字段对List<HashMap<String,Object>>进行分类
- alexnet 通过深度卷积对ImageNet图像进行分类
- 利用K-NN通过PCA进行图片分类
- solr 的修改操作二:通过map集合进行操作
- 通过Map对数据进行增删改查
- 移动佣金分类项及其相关报表通过配置表进行管理的使用说明
- caffe实战三:自己手写数字图片通过mnist的caffe模型进行分类
- 通过深度优先搜索(DFS)对图的边进行分类
- google map上实现通过点击地图任意点进行标记并形成多边形
- Android笔记—通过SharedPreferences将List<Map<String, String>>进行存储
- Android笔记—通过SharedPreferences将List<Map<String, String>>进行存储
- OpenCV神经网络进行分类
- 利用libsvm进行分类
- 对情况进行分类
- 对数据进行分类
- 利用距离进行分类
- OpenStack公共组件oslo之六——oslo.messaging
- 文章标题
- Redis持久化备份方式
- SQL的9种语句:
- [ArcGIS] 空间分析(十)3D分析-天际线 3D点要素、多面体创建
- 通过Map进行分类
- 微信公众号关注和取消
- maven deploy (私有库) 401
- 从源码角度分析SrcollView嵌套ListView显示不全的问题
- Android高德地图,添加Marker会遮挡小蓝点,只需设置一个属性,可以让小蓝点显示在Marker上
- Win7下安装Visual Stdio 2015后ucrtbased.dll丢失问题
- 洛谷P1270 树形DP
- XGBoost-Python完全调参指南-参数解释篇
- Python学习笔记(6)- 列表的切片