首页 > 解决方案 > 在java端查找重叠记录

问题描述

HashMap<ItemNo, List<Price>>在我的应用程序中有一个地图。每个项目没有很多价格区间。每个价格区间都有 FROM_DTIME、TO_DTIME。需要通过编写java逻辑找到所有具有重叠区间的价格对象。示例重叠间隔如下,第二个间隔应在第一个间隔完成后开始,即 01-SEP-19。但它始于 19 年 8 月 8 日。

我尝试如下,

    for (int i = 0; i < vGroupedByItemNoMap.get(itemNo).size(); i++) {
              Price vCurrent = vGroupedByItemNoMap.get(itemNo).get(i);
              Price vNext = (i == 0 ? null : vGroupedByItemNoMap.get(itemNo).get(i + 1));
DateTime vCurrentTodate = vCurrent.getToDate().plusSeconds(1);
          if (vNext != null) {
            DateTime vNextFromdate = vNext.getFromDate();
            if (vCurrentTodate != vNextFromdate) {
                  vOverlappedItemNoList.addAll(vGroupedByItemNoMap.get(itemNo));

                  log.info(
                      "Prices having Overlapping and [ItemNos ={}] are  not processed.",vOverlappedItemNoList);
                  break;
                }
              }
            }

在此处输入图像描述

任何人都可以在这里帮助我如何找到这样的重叠间隔。

标签: javalistalgorithmhashmap

解决方案


推荐阅读