通过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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩不爱写作业怎么办啊 孩子不爱看书怎么办如何教育 2岁宝宝不爱看书怎么办 儿媳妇比儿子年龄大我不喜欢怎么办 不喜欢儿子却生了儿子怎么办 静不下心来看书怎么办 孩子爱玩不爱学怎么办 孩子爱玩不爱学习怎么办 孩子爱玩手机不爱学习怎么办 照四维宝宝太活泼了怎么办 胎宝宝太活泼了怎么办 7个月宝宝太活泼怎么办 我是个初中生不想上学怎么办 3岁宝宝不肯说话怎么办 两周宝宝不爱吃饭怎么办 小孩不喜欢吃水果蔬菜怎么办 孩子对学习不感兴趣怎么办 幼儿园老师不喜欢我孩子怎么办 孩子数学不主动思考问题怎么办 孩子做事慢磨蹭家长应该怎么办 孩子不写作业怎么办啊 对孩子在校被欺怎么办 二年级的孩子不爱学习怎么办 孩子不爱学习怎么办二年级 二年级孩子不爱写作业怎么办 孩子喜欢的朋友家长不喜欢怎么办? 孩子不喜欢上幼儿园家长怎么办 孩子不喜欢家长学佛怎么办呢? 学生家长讨厌老师老师该怎么办 孩子不爱去幼儿园总是哭怎么办 孩子学习一点都不主动怎么办 孩子怕老师不想上学怎么办 幼儿园孩子怕老师不想上学怎么办 孩子在幼儿园怕老师怎么办 幼儿园老师对孩子有歧视怎么办 儿子在幼儿园受到老师歧视怎么办 我把老师骂了怎么办 孩子讨厌老师骂老师怎么办 幼儿园老师讨厌一个孩子怎么办 幼儿园老师对孩子不好怎么办 高中分班讨厌班主任怎么办