机票行程单_取空闲卡号段的算法

来源:互联网 发布:阿里云ecs控制面板 编辑:程序博客网 时间:2024/04/29 16:48

 

 

说明:getFreejourneySegment()  方法会返回当前登录空间下面所领取到的号段和已经发放出去的号段。

这个算法还有一个小前提,就是自己所拥有的号段必须是不连续的,不然判断时会有问题,处理方式是把连续的合成一个。

如 1-10 11-20 变成 1-20

 

第一个 Table 是自己所拥有的号段,第二个Table 是已经发放出去的号段。

 

把自己所有拥有的号段起止值都往外扩展一位,如 1-10  变成 0-11

已发放出去的号段则不需要变化。

 

然后把这些值全部放到一个数组里面 arrayList().选择 arrayList() 是因为它有一个自动排序功能。不过也有不好的地方,就是它是按字符型式排序的。"99">"100" ,如果碰到这种减一就会少一位的情况,处理方式是在前面补一个零。(这里没有做处理)

 

后面就比较简单了,只是简单作一个比较判断就可以了。前面之所有把空间号段往外扩展正是希望这种比较能够统一,不需要区分是空闲的,还是已发放过。

 

 

原创粉丝点击